Search
Write a publication
Pull to refresh
-4
@v3y7read⁠-⁠only

User

Send message

Беги муравей, беги! Ремейк 2022

Reading time22 min
Views4.7K

На написание этой статьи меня сподвигла одноименная статья на хабре: "Беги, муравей. Беги". В ней рассматривается решение задачи коммивояжёра  в среде AnyLogic.

О самой задаче можно почитать здесь:  Задача коммивояжёра.  

Если кратко, то задача сводится к нахождению самого короткого пути обхода набора точек (городов) на карте. Решение методом перебора не является эффективным, поскольку количество вычислений огромно. Например, для 15 точек существует 43 миллиарда маршрутов, а для 18 точек (городов) уже 117 триллионов!!!

AnyLogic – среда, предназначенная для решения логистических задач с использованием моделей агентов. Мне показалось интересным, что несмотря на «заточенность» среды на агентное моделирование, при создании модели приходится писать достаточно много кода. Поэтому возникла идея: попробовать реализовать подобную модель, используя среду структурного моделирования, в виде графических функционально-блочных диаграмм. Я уже приводил примеры, как можно реализовать принципы объектно-ориентированного программирования (ООП) в графическом языке программирования.  См. "Объектное ориентированное программирование в графических языках". Здесь же мы попробуем реализовать агентное моделирование средствами системной динамики. 

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

Читать далее

Будни инженера: что и как (не) работает в наших цехах

Reading time14 min
Views9.1K
Снова привет, Хабр! Я главный инженер производства, отвечаю за подбор, установку, настройку, обслуживание и ремонт технического оборудования. Часто разгребаю факапы технологов, операторов, производителей, поставщиков и прочих причастных. У нас то оператор оборудования накосячит, то производитель оборудования привезёт сюрприз, то просто звёзды сойдутся неправильно, и оборудование начинает выдавать необъяснимые ошибки. С этими вещами мириться нельзя, поэтому нужны мы, инженеры.


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

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

Добавляем список глав прямо в плеер YouTube

Reading time1 min
Views2.2K

У YouTube уже давно есть такая фишка как главы (chapters) для быстрой навигации по частям видео. Огромный недостаток текущей реализации - просмотр списка глав осуществляется в стороннем блоке за пределами плеера, т.к. в театральном и полноэкранном режимах до него непросто добраться. Намного удобнее, кажется, отображать оглавление прямо в плеере. Поправим это с помощью расширения (Chrome, Firefox).

Читать далее

Работа с графикой на языке Rust. Часть 2

Reading time19 min
Views6.2K

В этой статье я продолжу перевод и исследование WGPU, библиотеки языка Rust для работы с графикой.

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

WGPU реализует современный стандарт работы с видео подсистемами — WebGPU и компилируется в разные backend-ы (OpenGL, DirectX12, Metal, Vulkan, WebGL). Он одновременно проще для освоения, чем Vulkan и имеет более продуманное апи, чем OpenGL.

Приступим!

Читать далее

MobX с MVVM упрощает жизнь Frontend разработчика гораздо сильнее Redux'а

Reading time16 min
Views20K

В этой статье я бы хотел подискутировать о том, насколько хорошо паттерн MVVM подходит для разработки Web приложений на React. Вместе этим, я собираюсь описать какие преимущества могут быть при разработке с использованием MobX с паттерном MVVM в сравнении с Redux. Запаситесь кофе, это будет долгое чтиво.

Читать далее

Как работает автозаполнение в браузерах и что важно учитывать веб-разработчику

Reading time14 min
Views38K

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

Как создать пользовательский сервис на Qlik Sense

Reading time5 min
Views5.8K

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

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

Читать далее

Пневмоника и процессор постапокалипсиса

Reading time11 min
Views17K

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

Удивительно, но струйная логика используется не только в ракетных двигателях или газодинамических подшипниках, но и в бытовых газовых счётчиках. Совершенно случайно я наткнулся на пост «Внутренности газового счётчика» на Пикабу и увидел своих старых знакомых. «Ребята, а что вы тут делаете?», — подумал я и понял: время пришло.
Читать дальше →

Чем dry-rb (не) полезен мне

Reading time8 min
Views4.3K

В конце сентября мы провели уже четырнадцатую конференцию Ruby Russia. На ней было много полезного, и чтобы эта польза не пропала, мы оформили доклады в тексты, которые будем публиковать здесь. Автор первого Егор Шморгун, Ruby-разработчик Level Travel.

Читать далее

Сверхлёгкие частицы размером с галактику

Reading time41 min
Views37K

Расправившись со статьёй про «волны-убийцы», я ещё некоторое время по инерции запускал описанную там модель с различными начальными условиями. На каком-то этапе пришла мысль обобщить код на большие измерения и произвести расчёт для поля, заполненного случайными возмущениями. Результат крайне озадачил и увёл меня в совсем другое направление, заставив на несколько месяцев погрузиться в космологию и физику тёмной материи.
Читать дальше →

Где скачать научную статью легко и доступно?

Reading time1 min
Views130K

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

Однако стоимость одной статьи от платных издателей может составлять 150 долларов, что не так уж и мало по сравнению с размером стипендии студента.

Здесь собраны совершенно бесплатные ресурсы, где вы можете найти интересующую Вас научную статью.

Читать далее

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

Reading time5 min
Views16K

В наше время коротких текстовых и голосовых сообщений бывает сложно дать развернутый ответ о своих предпочтениях в выборе инструментов и техник на собеседовании с HR- специалистом или при обсуждении вопросов специфики проекта с потенциальным работодателем. Часто краткие ответы не подходят в данной ситуации и ведут к еще большему потоку вопросов со стороны собеседника. Как же быть в таком случае?

Предлагаю обратиться к аутентичным источникам и посмотреть, как это делают носители языка. Прочитав отрывок из интервью с Полом Айришем (Paul Irish) каналу Treehouse, который на момент съемки занимал должность разработчика в Google Chrome, мы можем найти фрагменты ответа, указывающие:

Читать далее

Объяснение паттерна Наблюдатель на примере Redux

Reading time6 min
Views12K

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

Казалось бы, что может избавить нас от мучительной рутины связанной с отслеживанием зависимостей? Есть один паттерн, который нам с этим поможет, и имя ему Наблюдатель. Давайте посмотрим как он реализуется в знакомой библиотеке менеджера состояний Redux.

Читать далее

Релиз языка программирования NewLang 0.3

Reading time9 min
Views7.2K
image

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


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

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

Как я тоже Понг на JS делал

Reading time30 min
Views10K

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

Хочу знать больше

Имя enum'a C++ в рантайме

Reading time10 min
Views7.4K

Получение имени типа, не важно это структура или перечисление, в C++ — проблема. То, что тривиально известно компилятору на этапе парсинга исходников, не получится перевести в человеко-читаемый вид в рантайме. Можно использовать std::type_info::name, который не является переносимым решением, потому что зависит от реализации манглинга в компиляторе. Некоторые компиляторы (например, MSVC, IBM, Oracle) создают "удобное" имя типа, а вот gcc и clang, возвращают искаженное имя, котороe можно преобразовать в удобочитаемую форму с помощью дополнительных функций, например abi::__cxa_demangle. Чтобы вся эта магия работала нужно подключить RTTI, который тоже не всегда доступен, а иногда и вообще-то вреден, потому что сжирает драгоценную производительность, но можно сделать по другому.

follow the white rabbit

Учим автотесты API адаптироваться под требования

Reading time8 min
Views7.2K

Привет! Меня зовут Тимур Шарафутдинов, я занимаюсь процессами автоматизации тестирования в «Ростелеком ИТ». Сегодня поделюсь своим опытом реализации model based-подхода в написании python API автотестов на проекте — приложении с микросервисной архитектурой для обработки, хранения, конфигурирации заказов.

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

Читать далее

Пайтон Джуньор Плюс, или путеводитель начинающего Python-программиста

Reading time8 min
Views28K

image


Добрый день! Меня зовут Михаил Емельянов, по профессии я программист программ, а этот небольшой путеводитель по возможностям языка Python меня сподвиг написать довольно существенный, на мой взгляд, разрыв между декларируемыми объемами всевозможных курсов программирования и требованиями реальных, даже достаточно скромнооплачиваеых вакансий, а также некоторая обобщенность существующих Python-путеводителей, найденных на просторах Сети.


Особенно выбивают из равновесия советы изучить, скажем, «Алгоритмы и структуры данных» или «SQL». Да зубы можно сточить, изучая эти темы, и даже будучи седовласым старцем, постоянно открывать для себя что-то новое, не выходя за рамки тематики «Алгоритмов»!


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

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

GeekBrains, который мы потеряли

Reading time9 min
Views22K

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

Читать далее

Квантовое предсказание 70-летней давности сбылось: как ученые впервые создали что-то из ничего

Reading time9 min
Views37K

Новые частицы возникают в графеновых трубках

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


Благодаря научному прогрессу, мы уже несколько лет как научились создавать даже саму материю, имитируя ситуацию через секунды после Большого взрыва. Для этого мы сталкиваем вместе два кванта в коллайдерах при настолько высоких энергиях, которые обеспечивают возникновение равных частей материи и антиматерии по формуле E = mc². А недавно человечеству впервые удалось создать реальные частицы материи вообще без столкновений и каких-то частиц-предшественников. С помощью сильных электромагнитных полей и эффекта Швингера впервые что-то возникло вообще из ничего.

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

Information

Rating
Does not participate
Registered
Activity