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

Программирование *

Искусство создания компьютерных программ

Сначала показывать
Порог рейтинга
Уровень сложности

Кратко про класс CompletableFuture в Java

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

Привет, Хабр!

Асинхронное программирование уже давно является полноценной частью Java. С появлением Java 8 и введением класса CompletableFuture, асинхронное программирование стало более доступным.

CompletableFuture — это класс в пакете java.util.concurrent, предоставляющий возможности для асинхронного программирования. Он поддерживает выполнение задач в фоновом режиме, цепочки задач, обработку исключений и многое другое.

Читать далее

Расширяем возможности Keras с помощью кастомных слоев

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

Привет, Хабр!

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

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

Читать далее

Я научу вас неправильно играть в Hearts of iron. Оптимизация довоенной экономики: часть 2

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

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

Теперь, когда мы можем за долю секунды провести симуляцию нескольких внутриигровых лет (см. часть 1), мы не только обеспечили возможность проверки результатов, но и открыли себе путь к простейшему способу выбора оптимального (с точки зрения максимизации военных заводов) момента переключения с строительства фабрик на военные заводы: перебору вариантов.

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

Вновь, ступить на тропу оптимизации.

.NET Aspire — империя дотнета наносит ответный удар

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

Когда я первый раз услышал про .NET Aspire, я подумал что это какая-то очередная лажа от Майкрософта, про которую все забудут через неделю.

Особенно, учитывая какую дичь часто завозят в шарп (например те же ужасно спроектированные Primary Constructor'ы про которые я писал, или вот прикол-пропозал от самого Тоуба). Так что ожидания у меня, честно говоря, были ниже нуля.

Но попробовав его лично, я был, честно говоря, шокирован. Трепещите, жависты!! Трепещите гошники! Трещепищите питонисты - такого вы еще точно не видели.

Я даже представить не мог, что DevEx можно сделать настолько офигительным.

Узнать про Aspire без смс и регистрации

Go + Minio: как написать простой сервер для взаимодействия с файлами

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

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

Если вы только изучаете go, начинаете писать сервера, то обязательно посмотрите эту статью - для бекендера уметь работать с s3 хранилищем так же важно, как и уметь работать с реляционной / нереляционной базой данных и с key-value базой - это основа основ.

Читать далее

Разбираемся с coroutine в Kotlin — 3

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

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

Читать далее

Создание масштабируемых RL систем с Ape-X

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

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

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

Читать далее

Учимся летать: симуляция эволюции на Rust. 1/5

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



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


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


Предполагается, что вы немного знакомы с Rust, остальное я постараюсь объяснить.

Эта серия состоит из нескольких статей:


  1. Введение (что мы будем симулировать, как работает нейронная сеть и генетический алгоритм).
  2. Реализация нейронной сети.
  3. Реализация генетического алгоритма.
  4. Реализация глаз, мозга и самой симуляции (в двух частях: первая, вторая).




Интересно? Тогда поехали.

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

Desktop приложение для хранения текстовой информации

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

В статье рассказываю о разработанном Desktop приложении для Windows, чтобы поделиться им со всеми желающими и получить обратную связь.

Читать далее

Нейросеть для генерации текста

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

Как я и ChatGPT писали текстовый генератор. Есть несколько изюминок

Модель нейросети больше, чем предложил чат-бот и она обучается нестандартным способом.

Читать далее

Все числа равны, но некоторые равнее. Как в Python сравниваются Int и Float

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

Ещё одна причуда Python, исследование её подноготной и попытка понять, почему так случается.

Недавно в сети X был популярен этот твит (см. скриншот), и я обратил внимание. Это очередной сюрприз в Python, связанный с характерными для него уникальными деталями реализации.

Читать далее

Тутор: как нажать на кнопку. Продвинутые техники работы с веб-элементами для Selenium

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

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

Читать далее

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

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

По мнению Артема Закируллина*, одна из фундаментальных проблем, с которой сталкиваются разработчики при анализе кода – высокая когнитивная нагрузка. Это не абстрактное, а реальное ограничение возможностей, которое стоит времени и денег. На чтение и понимание кода, тратится больше времени, чем на его написание. Поэтому, разработчику нужно постоянно задаваться вопросом: не пишет ли он код, чтение которого создает чрезмерную когнитивную нагрузку?

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

*Обращаем ваше внимание, что позиция автора может не всегда совпадать с мнением МойОфис.

Читать далее

Ближайшие события

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

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


Привет! Меня зовут Андрей, я студент ИТМО. В вузе есть NSS-лаборатория, в которой создают AutoML-решения и моделируют природные процессы, например, прогнозируют концентрацию и толщину льда в Арктике. Но выводы и результаты таких исследований могут жить не только в кровавом энтерпрайзе.

В этой статье я покажу, как сделать свой первый ML-проект, используя только свертки CNN-моделей. И сделаю это на примере небольшой библиотеки, которую я написал как раз в рамках вузовской практики в лаборатории.
Читать дальше →

Как создать волшебника в Django: многошаговые формы

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

Сегодня мы поговорим о магии, но не той, что преподают в Хогвартсе. Речь пойдет о создании волшебника, точнее многошагового мастера форм в Django, который позволяет пользователю шаг за шагом продвигаться к желаемому результату. Эта статья расскажет, как использовать django-formtools для реализации волшебства на вашем сайте.

А причем тут магия? Узнаете чуть позже.

Читать далее

Rust: за пределами синтаксиса. Обретение просветления в неожиданных местах

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

Я ненавижу C++. Обычно мне нравится программировать, но каждый проект на C++, за который я брался, казался мне утомительной рутиной. В январе 2023 года я решил изучить Rust, чтобы иметь возможность сказать, что знаю язык системного программирования, который мне действительно хотелось бы использовать.

Первая стабильная версия Rust вышла в 2015 году, и с тех пор, начиная с 2016 года, он ежегодно признается самым любимым языком в ежегодном опросе разработчиков на Stack Overflow (теперь, в 2023 году, это называется "Востребованный"). Почему же разработчики, попробовав Rust, не могут перестать его использовать? В мире разрекламированных преемников C/C++ Rust, похоже, выходит на первое место. Как получилось, что язык, который появился на основной сцене всего в прошлом десятилетии, стал таким популярным?

Читать далее

Подготовка к техническому собеседованию Senior/Team Lead backend

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

Недавно появились мысли походить на собеседования чем я успешно занялся. Если конкретно - смотрел лидовскую/сеньерскую позиции на Python и Golang(но статья может пригодиться backend разработчикам в целом). Не ставлю целью статьи объять все не объятное и дать какие-то гарантии. Я лишь зафиксирую данные для себя на будущее.

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

Сразу сделаю пометку, что некоторые навыки/ресурсы специфичны(по типу нарешивания Leetcode), но отталкиваемся от текущих реалий рынка.

Читать далее

Neuralink Илона Маска не единственный. Как появились нейроимпланты, есть ли у них будущее и при чем тут программирование

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

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

Читать далее

Между холиваром и оверинжинирингом: что, если разработчик не доверяет тестам тестировщика

Уровень сложностиСложный
Время на прочтение11 мин
Количество просмотров6.3K
Вы — разработчик и хотя бы раз говорили тестировщику «докажи руками»? Или вы — тестировщик и хотя бы раз слышали такое от коллег-разрабов? Либо вы — продакт или тимлид, в команде которого случались или могут случиться такие конфликты? Тогда эта статья для вас!

Кто-то после «а докажи, что это все действительно работает» или «а как ты проверял?» звереет и начинает открыто ругаться с коллегами — что ж, устраивать холивары, конечно, интересно, но бесполезно. Кто-то действительно начинает тратить ресурсы на воспроизведение бага. Однако можно выстроить такой процесс коммуникации, в котором разработчик доверяет результатам команды тестирования и даже иногда сам дополняет тесты, при этом не скатываясь в оверинжиниринг.



Меня зовут Илья Колесов, я — Senior SDET (Software Development Engineer in Test) в команде KasperskyOS Automotive & Embedded Quality Control «Лаборатории Касперского» и занимаюсь разработкой автоматизированных тестов на стыке embedded- и desktop-систем. В этой сфере я прошел весь путь с нуля до готовых решений. И в этой статье расскажу о взаимодействии с разработкой через автоматизацию тестирования — поделюсь своим опытом того, как удается преодолеть недоверие и сделать коммуникации более эффективными.
Читать дальше →

С Python на Go и обратно: мой опыт

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

Привет! Меня зовут Денис, я ведущий Golang-разработчик в МТС Диджитал. Еще год назад я работал экспертом по запуску новых сервисов и услуг в Корпоративном центре МТС и параллельно заканчивал курс «Продвинутый Go‑разработчик» от Практикума.

В этой статье я расскажу, как начал программировать на Python и зачем мне понадобился Go, как и чему я учился и почему теперь посматриваю на Rust.  

Go читать!