Pull to refresh
4
0

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

Send message

Этот увлекательный мир радиопередатчиков на транзисторах

Level of difficultyEasy
Reading time16 min
Views20K

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

Сегодня можно купить готовые и современные передающие и приёмные устройства как для радиосвязи, так и для радиоуправления. Довольно популярны относительно недорогие программно-определяемые радиосистемы Software-defined radio (SDR). Модули связи LoRa позволяют устанавливать связь на значительном расстоянии даже при небольших уровнях мощности. Однако знакомство с базовыми принципами создания устройств радиосвязи на транзисторах, на мой взгляд, будет полезно начинающим радиолюбителям. 

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

Надеюсь, что эксперименты, описанные в статье, помогут вам войти в увлекательный мир радиосвязи!

Читать далее

Загадка простых чисел — ключ к стратегии Magic: The Gathering

Level of difficultyEasy
Reading time5 min
Views3.9K

Партия в Magic: The Gathering начинается ещё до того, как игроки выложат перед собой свои первые карты. Magic — это коллекционная карточная игра, в которой противники выбирают оптимальную колоду карт на основании их предположений о том, как она будет работать против гипотетических оппонентов со множеством разных стратегий. Сама же партия позволяет доказать или опровергнуть прогнозы игрока. Так как уже выпущено примерно тридцать тысяч уникальных видов карт (хотя маловероятно, что их все приобретёт один игрок), существует множество разных степеней вариаций.

Это изобилие возможностей породило очень много вопросов и идей. Некоторые игроки задавались вопросом, насколько сложна игра на самом деле. Например, достаточно ли в ней сложности для выполнения вычислений, как на компьютере? Разработчик ПО Алекс Черчилль и два других игрока в Magic создали cигровую ситуацию, в которой карты действуют, как универсальный компьютер машина Тьюринга. В 2019 году они опубликовали свою работу на arXiv.org.

Их компьютерная модель позволила подвести итог: Magic — это самый сложный вид игры. Теоретически, партия в Magic может выполнять любые вычисления, на которые способен компьютер.

Читать далее

Винтик и Шпунтик, часть 1: формула включений-исключений

Level of difficultyMedium
Reading time14 min
Views2.8K

В данной серии статей я изложу мои наработки по решению задачи про Винтика и Шпунтика в рамках челленджа @vvvphoenix. Наработок достаточно много, и изложение их всех в одной статье получилось бы слишком объемным, либо же пришлось описывать всё достаточно сжато. Ни того, ну другого не хотелось бы, поэтому разбиваю изложение на части. Пока планируется 4 части, возможно в ходе их написания появятся идеи для новых частей или новые продвижения в решении задачи. И тогда частей будет больше. Данная первая часть скорее вводная, в которой я опишу такой подход к подсчету числа вариантов в различных комбинаторных задачах, как "формула включения-исключения".

Читать далее

OLMo: (Миниатюрная) Открытая Языковая Модель

Level of difficultyMedium
Reading time7 min
Views4.6K

OLMo — моделька от AI2, разработанная учёными для учёных. Если вы занимаетесь экспериментами над нейронками, это идеальный вариант: весь код и данные, необходимые для тренировки, открыто лежат на GitHub. Более того, выложены даже промежуточные чекпоинты, с очень высокой гранулярностью. Это отличает ее от якобы "открытых" нейронок, которые обычно приходят к тебе монолитным финальным бинарём.

Эта статья — короткий гайд, адаптированный с GitHub создателей нейросети и проверенный на практике.

Интересно. Читать далее

Квантовый дуализм и реальность на языке информации

Level of difficultyMedium
Reading time16 min
Views3.5K

Почему фотоны исчезают в тёмных полосах интерференции? Что значит — «каждый фотон интерферирует только с самим собой»? И как природа вообще позволяет одному и тому же объекту вести себя как частица и как волна одновременно — пока вы на него не смотрите?

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

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

Вперед, к квантовой информации

Классификация парадигм программирования

Level of difficultyEasy
Reading time6 min
Views5.1K

Здравствуйте, меня зовут Дмитрий Карловский и я.. придерживаюсь следующей парадигмы мышления: всякое определение должно иметь чёткую границу между тем, что ему соответствует, и тем, что не соответствует.

К сожалению, часто можно встретить споры о пересекающихся определениях, словно они взаимоисключают друг друга. Не менее часто можно встретить ложную дилемму между двумя терминами не покрывающими всё множество сущностей.

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

Аспекты классификации

Game++. Patching patterns

Level of difficultyEasy
Reading time46 min
Views3.4K

Книга Design Patterns: Elements of Reusable Object-Oriented Software («Приёмы объектно-ориентированного проектирования. Паттерны проектирования»), также известная под названием "синей книги", по цвету обложки первого издания, или книги "банды четырех/GoF" издана почти тридцать лет назад.

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

Я всё еще считаю, что книга актуальна - как базовые знания вроде математики, алгоритмов и примитивов синхронизации, но за прошедшие годы люди создали и обнаружили множество новых, хоть и не таких известных. А некоторые паттерны, настолько стали, затасканными что ли, что превратились скорее в антипаттерны, как например, Singleton и совсем потерялся смысл его использования. И там где разумное применение не приносит больше вреда, но позволяет развязать зависимости, создание архитектуры на таких принципах - ведет только к разбуханию кода, и коду ради кода.

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

Заходите, великов и граблей хватит на всех.

Читать далее

От торговых дневников до медитаций: актуальная ли сегодня книга бихевиориста Бретта Стинбарджера «Самоучитель трейдера»?

Level of difficultyEasy
Reading time9 min
Views1.5K

Существует огромный пласт литературы, призванный помочь начинающим инвесторам разобраться в себе и фондовом рынке. В каких-то книгах акцент делается на экономическую составляющую, анализ историй успеха и торговые стратегии – сюда можно отнести «Принципы» Рэя Далио, «Разумного инвестора» Бенджамина Грэма, биографии и автобиографии Уоррена Баффетта и т.д.

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

Мы же сегодня мы расскажем об одном из ярчайших представителей такой литературы – книге Бретта Стинбарджера, одного из пионеров исследования поведения инвесторов с позиций бихевиоризма. Его работа «Самоучитель трейдера» является практическим руководством по саморазвитию для трейдеров, построенным на ряде психотехник, которые мы и разберем.

Читать далее

Обобщенный алгоритм Дейкстры

Level of difficultyMedium
Reading time5 min
Views5.3K

Хочу поделиться знанием, которое не является секретом, в каких-то курсах по алгоритмам оно наверняка дается, но нагуглить его совсем не просто. Поэтому пусть будет.

Алгоритм Дейкстры можно обобщить на произвольную функцию длины пути, если только она удовлетворяет трем условиям:

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

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

Оптимальность префикса. Если к двум путям приписать одинаковое ребро, то кратчайший путь останется кратчайшим.

Под катом я привожу доказательство корректности обобщенного алгоритма и показываю, как его применить в задаче на литкоде: Trapping rain water II.

Читать далее

Google sheets with C++

Level of difficultyEasy
Reading time8 min
Views2.9K

Google sheets with C++

Привет, пишу тг бота на C++. Недавно мне требовалось подключить выгрузку данных из бд в гугл таблицы, но годного гайда как это сделать я не нашел. Поэтому будет простенький гайд. Расписываю как читать и записывать данные в гугл таблицы. Использовал библиотеки rapidjson, libcurl и jwt-cpp.

Читать далее

RAII 2.0: RAII как архитектурный инструмент в C++

Level of difficultyMedium
Reading time7 min
Views5.2K

Идиома RAII — давно зарекомендовал себя как удобный способ автоматического управления ресурсами в C++. Обычно мы применяем его для управления памятью, файловыми дескрипторами или мьютексами. Однако что, если расширить понятие RAII до управления не только физическими ресурсами, но и логическими контрактами и состояниями системы?

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

Читать далее

Парадокс Моравека: как простые вещи становятся самыми сложными

Reading time6 min
Views10K

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

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

Читать далее

16 байт вместо 32: управляем layout'ом в C++

Level of difficultyEasy
Reading time6 min
Views3.4K

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

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

Читать далее

Пишем сканер штрихкодов на c++

Level of difficultyMedium
Reading time10 min
Views12K

Штрихкод и с чем его едят на плюсах. Сегодня я покажу вам как я писал простейший сканер штрихкодов EAN-8 и EAN-13. Конечно, я мог бы взять готовые и более функциональные сканеры из интернета, НО зачем? Зачем, если можно сделать самому, если можно развить свои навыки и расширить портфолио? Вот и я так подумал...

Если вы заинтересовались - я сейчас вам раскачаю про код...

Просканировать статью

Возникновение эмоций, мышления и сознания из когнитивного диссонанса

Level of difficultyMedium
Reading time12 min
Views9.5K


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

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

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

Когнитивный диссонанс — конфликт влияющих на реагирование процессов ЦНС (когниций), требующий специальной работы ЦНС по определению иерархии когниций — т.е. принятия решений. Автор «теории когнитивного диссонанса» Леон Фестингер (1957) утверждал, что понятие когнитивного диссонанса применимо к организму с даже рудиментарными когнитивными функциями.
Читать дальше →

Пишем игру для игровой ретро-консоли Anbernic на C++

Level of difficultyMedium
Reading time10 min
Views4.2K

Не так давно ко мне в руки попала игровая ретро-консоль и у меня возникло желание написать для неё свою игру. А возникало ли у вас желание написать свою игру под игровую консоль?

Да, у меня возникало!

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

Level of difficultyEasy
Reading time10 min
Views111K

«Вспоминаю, как в 7-м классе ничего не понимал, когда мы начинали разбирать тригонометрию. С учителем мы не смогли найти общий язык, поэтому к 8–9-му классу я был уверен, что никогда не буду заниматься математикой, а уж тем более сидеть по несколько часов в день, утыкаясь в учебники Беклемишева или Кожевникова и параллельно просматривая лекции Физтеха…»

Всем привет! Идею этой статьи я вынашивал довольно долго, пока не набрался опыта в том, что сейчас стало моей каждодневной практикой. Надеюсь, мой опыт поможет кому-то из вас комфортнее и эффективнее подойти к изучению математики (а может, и других наук). Предлагаю познакомиться:

Меня зовут Ренат, мне 23 года, я родился в Москве, окончил обычную школу и вплоть до 19 лет не понимал, чем хочу заниматься — что называется «что меня драйвит». Сейчас живу на Кипре, работаю тут аналитиком, продолжаю параллельно учиться в России и скоро заканчиваю там университет.

За последние несколько лет я успел поработать аналитиком в Ozon, затем продуктовым аналитиком в Тинькофф (ныне Т-банк), перешёл в лондонский стартап, а сейчас тружусь над проектами в сфере Trust & Safety. И вот в один прекрасный день я решился «серьёзно ботать математику»: уже несколько месяцев уделяю 10–15 часов в неделю задачам, лекциям и подготовке к поступлению в магистратуру (решая вступительные от МГУ, ВШЭ, МФТИ). Именно об этом пути — как я ищу мотивацию, борюсь с прокрастинацией и стараюсь не выгореть — я и хочу вам рассказать.

Читать далее

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

Level of difficultyMedium
Reading time17 min
Views4.4K

Привет! Меня зовут Павел Яковлев, я инженер по разработке ПО искусственного интеллекта в YADRO. В команде GenAI мы занимаемся умными продуктами на основе корпоративных баз данных.

В проектах мы часто используем современные генеративные модели и энкодеры. В статье расскажу, как мы в компании разрабатываем и оптимизируем семантический поиск по сложным документам: PDF, HTML и DOCX.

Читать далее

Векторизация в RISC-V. Основы

Level of difficultyHard
Reading time13 min
Views5.6K

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

В процессорах архитектуры x86 SIMD инструкции добавляются по принципу ad hoc. Из-за такого подхода, легаси и требований обратной совместимости в x86 накопилось много проблем.

Архитектура RISC-V относительно молодая, и при её разработке учтён прошлый опыт. В основе подхода к SIMD в RISC-V заложили идею чистого векторного процессора.

В этой статье рассмотрим основные принципы работы векторного процессора и базовые векторные операции с памятью и арифметикой.

Читать далее

Учимся рефакторить код на примере багов в TDengine, часть 2: макрос, пожирающий стек

Level of difficultyMedium
Reading time6 min
Views1.8K

Макрос пожирает стек


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

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

Information

Rating
7,169-th
Registered
Activity