Pull to refresh
54
0

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

Send message

.xlsx изнутри. Разбор структуры файлов. Разбор каждого .xml файла

Reading time25 min
Views60K

Это статья о разборе excel изнутри. Вы узнаете как работать со стилями ячеек, листов через xml, как вносить данные и формулы в ячейки и мого другого.

Читать далее

Вычисляем на видеокартах. Технология OpenCL. Часть 1b. Пишем для OpenCL

Reading time9 min
Views12K
22 июня автор курса «Разработчик C++» в Яндекс.Практикуме Георгий Осипов провёл вебинар «Вычисляем на видеокартах. Технология OpenCL».



После перерыва продолжаем публикацию текстовой версии вебинара.


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

У программы для OpenCL есть две части: kernel-код и host-код — то, что выполняется на видеокарте, и то, что выполняется на компьютере. Кроме того, программу нужно скомпилировать и запустить. Всё это будет рассмотрено в сегодняшней статье. Начнём с самого интересного — напишем часть kernel.

В предыдущих сериях


Прежде чем начать, напомним основные термины из предыдущей части.
Читать дальше →

Как компьютеры рисуют странные формы: метаболы, marching squares, электрические поля

Reading time15 min
Views8.1K

Пару месяцев назад я наткнулся на очень красивые анимации. В основе этих анимаций лежат несколько простых окружностей, но выделяет их то, насколько органично они сливаются друг с другом. Мне стало любопытно, как это работает, и моё исследование оказалось гораздо интереснее, чем я ожидал. Выяснилось, что соединяющиеся друг с другом круглые объекты называются метаболами (metaballs) и с ними связано множество математических и вычислительных понятий. Если вы в чём-то похожи на меня, то посмотрев на эти анимации, вы бы сразу задались вопросом, как подойти к решению такой задачи. Допустим, нам поручили разобраться с тем, как генерировать метаболы. Как сформулировать эту задачу? Что означает возможность органичного слияния окружностей? Как компьютер рендерит нечто подобное на экране? Всё это очень сложные вопросы.

В этой статье мы совершим путешествие и узнаем, как люди решают эту задачу. Базовый алгоритм, играющий неотъемлемую роль в генерации таких анимаций, называется marching squares. Он используется во многих сферах графики, а также медицинской визуализации. Но каким бы полезным ни был алгоритм, самым важным в нашем путешествии будет то, насколько изящен этот подход при решении подобной задачи. Есть истинная красота в том, что мы берём расплывчатую задачу и преобразуем её в конкретный решаемый вид. Главная цель этой статьи — дать вам ощущение радости при исследовании смены точек зрения, превращающих подобные сложные задачи в решаемые.
Читать дальше →

Компьютер на логических микросхемах: исполнение инструкций

Reading time9 min
Views11K

Вторая статья про самодельный компьютер. Сегодня я расскажу вам про кодирование и исполнение инструкций, а также немного про программирование.

Читать далее

Почему гелий меняет наш голос, а также что такое инертные газы

Reading time3 min
Views11K

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

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

Все благородные газы одноатомны. То есть в одной молекуле газа содержится один атом. Причем химические оболочки атомов полностью заполнены электронами. Что это значит? Вспомните уроки химии - на каждой оболочке атома может быть лишь определенное число электронов: на первой 2, на второй 8 и так далее. Полная заполненность оболочек у благородных газов и объясняет то, что они почти не вступают в химические реакции, потому что просто не способны присоединить к себе больше электронов.

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

Читать далее

«Магнитофон» для ZX Spectrum на базе Arduino

Reading time6 min
Views23K

Есть у меня аналог Спекки — персональный компьютер «Мастер». Он прошел несколько модернизаций, так что сейчас работает от обычного USB и с любым телевизором по SCART. Но вот с загрузкой программ есть небольшие сложности: магнитофона у меня уже нет, ноут для этих целей разворачивать лениво, а удобного софта для телефонов не нашел. В общем, хочется чего-то серьезного. На века. Залить всю библиотеку софта и игр, положить на полочку и не бояться, что лет через 10 это дело протухнет.

На просторах интернета ходит такой проект как TZXDuino. В этой статье я расскажу о моих модификациях в нем и итоговом результате.

Читать далее

Мой компьютер на логических микросхемах

Reading time6 min
Views58K

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

Читать далее

Сравнение микрополосковой и копланарной линий (для СВЧ плат)

Reading time6 min
Views19K

От автора перевода:

Большая часть электроники в наши дни делается на основе печатных плат. СВЧ устройства требуют как специальных диэлектрических подложек (про это я писала тут и тут), так и других типов "дорожек". Чаще всего применяются микрополосковые и копланарные печатные линии.

Автор статьи - Джон Кунрад, технический маркетинг-менеджер компании Роджерс (Rogers Corp). Роджерс - крупнейший производитель диэлектрических подложек и других материалов.

Оригинал статьи можно найти тут. А вот тут и тут можно посмотреть видео этого автора на оф.канале компании на YouTube.

Оригинальная статья представлена без картинок, однако есть приписка "основано на презентации, показанной на IEEE 2015 International Microwave Symposium". Я нашла эту презентацию и дополнила слайдами перевод.

Читать перевод

Алгоритм генерации тайловых карт Model Synthesis

Reading time7 min
Views5K
image

Я много писал об алгоритме коллапса волновой функции (Wave Function Collapse). Этот алгоритм, разработанный Максимом Гуминым в 2016 году, генерирует тайловые карты и пиксельные текстуры на основании удовлетворения ограничениям с дополнительной рандомизацией [перевод на Хабре]. Но знали ли вы, что большинство основных идей для него взято из статьи, написанной больше десятка лет назад? Сегодня мы рассмотрим диссертацию 2007 года на степень PhD Пола Меррела Model Synthesis и некоторые из разработанных им расширений алгоритма, в частности, Modifying in Blocks.

Model Synthesis


Идея Model Synthesis очень похожа на WFC, по которому я написал целый туториал. Но в этой статье мы опишем идею с нуля.

Model Synthesis начинает с передачи примера тайловой карты, которая используется алгоритмом для того, чтобы учиться, какие тайлы могут располагаться друг рядом с другом при построении модели. Затем для выходного результата инициализируется пустая сетка ячеек. Каждая ячейка имеет список «потенциальных» тайлов, которые могут её заполнить.

Изначально допустим любой тайл. Основной цикл выбирает ячейку и выбирает для неё заданный тайл, помечая все остальные как недопустимые. Затем он распространяет последствия этого выбора при помощи алгоритма AC4, то есть помечает тайл как недопустимый для текущей ячейки, если все его валидные смежные ячейки уже недопустимы. После распространения цикл сбрасывается и мы выбираем другую ячейку, для которой нужно выбрать тайл.
Читать дальше →

Архитектура PlayStation 3, часть 3: Три «ОС»

Reading time22 min
Views17K

Теперь, когда PlayStation 3 стала мощным мультимедийным центром, то ей требуется более сложная операционная система (ОС), чтобы предоставить пользователям больше различных сервисов и игр.

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

Читать далее

Архитектура PlayStation 3, часть 2: RSX

Reading time12 min
Views14K

Можно подумать, что Cell со всеми своими особенностями мог бы справится со всеми задачи этой консоли. Однако Sony установила отдельный чип для 3D-графики, чтобы завершить свою консоль PlayStation 3...

Читать далее

Архитектура PlayStation 3, часть 1: Cell

Reading time24 min
Views41K

В 2006 году Sony выпустила долгожданную игровую консоль "следующего поколения". Это блестящая (хоть и тяжелая) машина, чья базовая аппаратная архитектура развивает идеи Emotion Engine из PS2, то есть фокусируется на векторных вычислениях для достижения высокой производительности, даже ценой сложности.

В то же время, их новый "суперпроцессор", Cell Broadband Engine, был разработан в эпоху кризиса инноваций. Он должен будет идти в ногу с развитием тенденций в области мультимедиа.

Читать далее

О сетевой модели в играх для начинающих

Reading time11 min
Views41K
image

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

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

В целом существует два основных типа сетевых архитектур: peer-to-peer и клиент-серверная. В архитектуре peer-to-peer (p2p) данные передаются между любыми парами подключенных игроков, а в клиент-серверной архитектуре данные передаются только между игроками и сервером.

Хотя архитектура peer-to-peer по-прежнему используется в некоторых играх, стандартом является клиент-серверная: она проще в реализации, требует канал меньшей ширины и облегчает защиту от читерства. Поэтому в этом руководстве мы сосредоточимся на клиент-серверной архитектуре.
Читать дальше →

Работаем с сетевыми адаптерами через Pcap-драйверы

Reading time16 min
Views14K
Работой с сетью в наше время никого не удивишь. Насколько я знаю, работать с сокетами нынче обучают уже на втором курсе соответствующих специальностей. Так что в целом, сетевые навыки должны быть у многих программистов. Но иногда требуется не просто работать с сетью, а делать это с предопределёнными параметрами, будь то расстояние между пакетами либо какое-то нестандартное их содержимое. Понятно, что речь идёт не о повседневной жизни, а об отладке либо тестировании проектов. В этом нам поможет работа через Pcap-драйверы. Например, через драйвер Npcap, устанавливающийся вместе с программой Wireshark.



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

В общем, думаю, имеет смысл свести все сведения воедино. Кому интересно – приступаем!
Читать дальше →

U-boot. Процедура инициализации по шагам

Reading time6 min
Views33K

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

Читать далее

Многоканальный имитатор сигнала GPS на RFSoC

Reading time6 min
Views15K

Многоканальный имитатор GPS - зачем он нужен? Все знают, как используются одноканальные: для тестирования навигационных приемников при разработке и производстве, для обмана систем навигации в мирное и военное время. А зачем нужны многоканальные?

Читать далее

Создаем новое ключевое слово в C++

Reading time27 min
Views24K

C++ - один из языков, который можно назвать "легендарным". Его история насчитывает несколько десятилетий, принципы программирования на нем революционным образом менялись не раз, а черновик стандарта уже разросся до 1800+ страниц мелкого шрифта.

На C++ есть много хороших библиотек. Но нередко изменения в самом языке делали неактуальными большие куски кода, потому что они становились менее надёжными и быстрыми по сравнению с функционалом в самом языке. Правки в стандарт имеют несоизмеримо более сильное влияние, чем любая библиотека.

В этой статье мы в учебных целях напишем для C++ поддержку нового ключевого слова defer, которое будет работать во многом аналогично такому в языках Go и Swift. Это будет сделано через правку исходного кода Clang.

Создать!

Аналоговое и цифровое питание. Мифы и реальность

Reading time8 min
Views38K

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

Узнать как разделять питание и властвовать

Схемы питания (фильтрации) СВЧ усилителей

Reading time4 min
Views14K

В прошлом месяце я писала про тестовые платы, потом про проектирование СВЧ модуля и про лейауты EVB от производителей (что особенно актуально для усилителей).

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

+ много примеров!

далее

Вторая микросхема :)

Reading time5 min
Views24K
В 2018 году у себя гараже я изготовил первую интегральную схему, это был двойной дифференциальный усилитель Z1. Тогда я заканчивал школу, а сейчас уже выпускаюсь из колледжа. Очевидно, пришло время улучшить производственный процесс.



Z1 с шестью транзисторами представлял эксперимент для отработки всех процессов и проверки оборудования. В теперешнем Z2 уже 100 транзисторов c поликремниевым затвором 10 мкм — та же технология, что и в первом процессоре Intel. Здесь просто массив 10×10 транзисторов для тестирования, определения характеристик и настройки процесса, но это огромный шаг к более продвинутым самодельным чипам. В Intel 4004 было 2200 транзисторов, а я разместил 1200 на такой же пластине.
Читать дальше →

Information

Rating
Does not participate
Date of birth
Registered
Activity