Pull to refresh
1
0.1
Send message

Делаем правильный анаглиф своими руками

Level of difficultyEasy
Reading time12 min
Views6.5K


Всем привет. Сегодня я поделюсь методом создания высококачественных анаглифических изображений с минимальными трудозатратами. Динозавров делать не будем: возьмем любую фотографию из семейного архива и получим полноценное трехмерное изображение. Сразу скажу, что концепция не новая, но мы будем использовать современные наработки и даже напишем простейший плагин для GIMP, от которого, впрочем, придется отказаться…
Читать дальше →
Total votes 40: ↑39 and ↓1+53
Comments9

Rust и иммутабельность

Level of difficultyEasy
Reading time5 min
Views3K

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

Иммутабельность данных в Rust – это основа для создания систем, устойчивых к ошибкам и сайд-эффектам. В этой статье рассмотрим, как Rust позволяет использовать неизменяемые структуры данных для улучшения производительности и безопасности приложений.

Начнем с синтаксических особенностей.

Читать далее
Total votes 15: ↑9 and ↓6+8
Comments12

За что мы любим (пост)апокалипсис? Часть 4: мутанты, радиация и мрачнеющие краски атомного армагеддона

Level of difficultyEasy
Reading time7 min
Views6.6K

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

Все части цикла статей о постапокалиптике:
Читать дальше →
Total votes 43: ↑40 and ↓3+53
Comments14

Фокусы с опторазвязкой

Level of difficultyMedium
Reading time9 min
Views25K

Нюансы оптронной развязки, борьба с её недостатками и интересный на мой взгляд костыль: как разогнать скорость копеечной опторазвязки и наполучать других бонусов. Я не силён в рекламе, поэтому на месте КДПВ будет сразу тема статьи.

Читать далее
Total votes 125: ↑124 and ↓1+160
Comments63

Фен и нижний подогрев. Снятие/установка BGA без реболлинга

Reading time5 min
Views8.9K

Приветствую, Хабр!

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

Читать далее
Total votes 46: ↑45 and ↓1+68
Comments28

Секретная китайская плата: контроллер стиральной машины

Level of difficultyEasy
Reading time8 min
Views41K


Привет, Хабр! Лучшее профессиональное образование — максимально приближённое к реальной жизни. Как минимум в этом смысле пособия для конкурсов и экзаменов по электронике в китайских колледжах заслуживают звания одних из лучших.

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

Разработчики набора не забыли добавить традиционную парочку ошибок, чтобы работа испытуемого заключалась не только в аккуратной установке деталей по предложенной схеме, но и сопровождалась пониманием того, как она должна работать, и что необходимо изменить, чтобы она заработала как надо.
Читать дальше →
Total votes 52: ↑51 and ↓1+74
Comments61

1. Nix в пилюлях: Почему вам стоит попробовать Nix

Level of difficultyMedium
Reading time7 min
Views9.9K

Предисловие


В 2014 и 2015 годах Люка Бруно (Luca Bruno aka Lethalman) опубликовал серию постов, описывающих пакетный менеджер Nix, операционную систему NixOS и хранилище Nixpkgs.


Люка назвал свои посты пилюлями (англ. pill — таблетка, пилюля).


Берясь за перевод, я пытался выяснить, нет ли у выражения in pills устойчивого смысла.
Оказалось, что скрытый смысл есть у самого слова Nix.
Это одна из торговых марок перметрина — средства против клещей, которое доступно только в виде мази.
Иными словами, медицинского Никса ни в пилюлях, ни в таблетках не бывает.


С момента публикации, Nix в пилюлях считается классическим введением в Nix. В 2017 году Грэм Кристиансен (Graham Christensen aka grahamc/gchristensen) инициировал работу по переводу серии статей в формат электронной книги.


Актуальную оригинальную версию книги вы найдёте по адресу https://nixos.org/guides/nix-pills/.
Там же доступен вариант в формате EPUB.


В 2024 году Марк Шевченко начал перевод книги на русский язык.
Актуальная версия доступна по адресу https://nix-pills-ru.github.io.


ℹ️ В примерах, команды, которые начинаются с символа "решётка" (#), должны быть запущены с правами пользователя root.

(Адрес статьи на официальном сайте перевода).


Почему вам стоит попробовать Nix


Введение


Добро пожаловать на первую пилюлю из цикла «Nix в пилюлях».
Nix — это чистый функциональный пакетный менеджер и система развёртывания для POSIX-совместимых ОС.

Читать дальше →
Total votes 23: ↑23 and ↓0+24
Comments14

2. Nix в пилюлях: Установка в вашей системе

Level of difficultyMedium
Reading time5 min
Views2.6K

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

Читать далее
Total votes 10: ↑9 and ↓1+13
Comments4

3. Nix в пилюлях: Погружаемся в среду

Level of difficultyMedium
Reading time6 min
Views1.9K

Третья статья из цикла Nix в пилюлях. Наконец-то, практика! Разбираемся, что такое окружения и поколения, учимся откатывать изменения, выясняем, как работать с каналами

Читать далее
Total votes 4: ↑4 and ↓0+6
Comments0

4. Nix в пилюлях: Основы языка

Level of difficultyMedium
Reading time6 min
Views1.6K

Четвёртая часть из цикла статей Люка Бруно, посвящённой пакетному менеджеру и языку программирования Nix.

Здесь мы знакомимся с основами языка.

Читать далее
Total votes 6: ↑6 and ↓0+7
Comments0

Разработка цифровой аппаратуры нетрадиционным методом: Yosys, SpinalHDL, VexRiscv (ч. 2)

Level of difficultyHard
Reading time118 min
Views3.3K

Это вторая и заключительная часть большой статьи. Ознакомиться с первой частью можно по ссылке.

Основная прелесть использования ПЛИС, на мой взгляд, состоит в том, что разработка аппаратуры превращается в программирование со всеми его свойствами: написание и отладка кода как текста на специализированных языках описания аппаратуры (HDL); код распространяется в виде параметризованных модулей (IP-блоков), что позволяет его легко переиспользовать в других проектах; распределенная разработка обширным коллективом разработчиков с системой контроля версий, такой же, как у программистов (Git); и, как и в программировании, ничтожно низкая стоимость ошибки.

Последнее очень важно, так как если при разработке устройства классическим методом разработчик несет вполне существенные затраты на сборку и производство изделия, и любая схемотехническая ошибка или ошибка трассировки печатной платы — это всегда выход на очередную итерацию и попадание на деньги, то при работе с ПЛИС ошибки ничтожны по своей стоимости и легко устранимы. И даже если в серийном изделии обнаруживается ошибка, то её во многих случаях можно устранить очередным апгрейдом прошивки «в поле» без замены изделия. Короче, с приходом ПЛИС разработка цифровой аппаратуры все больше и больше выглядит как программирование, а это, помимо всего прочего, существенно понижает порог вхождения в тему, и все больше программистов становятся разработчиками «железа». А новые люди, в свою очередь, приносят с собой в индустрию новые подходы и принципы.

В этой статье я хочу поделиться своим небольшим опытом «программирования» микросхем ПЛИС и тем, как я постепенно погружался в тему ПЛИСоводства. Изначально я собирался написать небольшую заметку про открытый тулчейн для синтеза Yosys. Потом — про язык SpinalHDL и синтезируемое микропроцессорное ядро VexRiscv, на нём написанное. Потом — про замену микроконтроллеров микросхемами ПЛИС на примере моей отладочной платы «Карно». Но в процессе я погрузился в историю появления Hardware Description Languages (HDL), и когда я начал писать, Остапа, как это часто бывает, понесло... В общем, получилось то, что получилось.

Продолжить погружение
Total votes 24: ↑24 and ↓0+24
Comments15

Разработка цифровой аппаратуры нетрадиционным методом: Yosys, SpinalHDL, VexRiscv (ч.1)

Level of difficultyHard
Reading time127 min
Views11K

Основная прелесть использования ПЛИС, на мой взгляд, состоит в том, что разработка аппаратуры превращается в программирование со всеми его свойствами: написание и отладка кода как текста на специализированных языках описания аппаратуры (HDL); код распространяется в виде параметризованных модулей (IP-блоков), что позволяет его легко переиспользовать в других проектах; распределенная разработка обширным коллективом разработчиков с системой контроля версий, такой же, как у программистов (Git); и, как и в программировании, ничтожно низкая стоимость ошибки.

Последнее очень важно, так как если при разработке устройства классическим методом разработчик несет вполне существенные затраты на сборку и производство изделия, и любая схемотехническая ошибка или ошибка трассировки печатной платы — это всегда выход на очередную итерацию и попадание на деньги, то при работе с ПЛИС ошибки ничтожны по своей стоимости и легко устранимы. И даже если в серийном изделии обнаруживается ошибка, то её во многих случаях можно устранить очередным апгрейдом прошивки «в поле» без замены изделия. Короче, с приходом ПЛИС разработка цифровой аппаратуры все больше и больше выглядит как программирование, а это, помимо всего прочего, существенно понижает порог вхождения в тему, и все больше программистов становятся разработчиками «железа». А новые люди, в свою очередь, приносят с собой в индустрию новые подходы и принципы.

В этой статье я хочу поделиться своим небольшим опытом «программирования» микросхем ПЛИС и тем, как я постепенно погружался в тему ПЛИСоводства. Изначально я собирался написать небольшую заметку про открытый тулчейн для синтеза Yosys. Потом — про язык SpinalHDL и синтезируемое микропроцессорное ядро VexRiscv, на нём написанное. Потом — про замену микроконтроллеров микросхемами ПЛИС на примере моей отладочной платы «Карно». Но в процессе я погрузился в историю появления Hardware Description Languages (HDL), и когда я начал писать, Остапа, как это часто бывает, понесло... В общем, получилось то, что получилось.

А еще эту статью можно рассматривать как глубокое погружение в то, что происходит вот на этом новогоднем видео.

Погрузиться сполна
Total votes 42: ↑41 and ↓1+58
Comments65

Нейросети, виртуальная реальность и Бог-солипсист

Level of difficultyEasy
Reading time14 min
Views2.7K

Несколько недель тому назад компания OpenAI анонсировала скорый выход нейросети SORA, способной создавать связный осмысленный видеоряд из простого текстового описания того, что вы хотите увидеть. То, как работает эта нейросеть, можно узнать из великолепной статьи "Настоящее предназначение OpenAI SORA: как и зачем симулировать «Матрицу» для ChatGPT". Несмотря на то, что тема, на которую я хочу поговорить с вами сегодня, напрямую не связана с написанным в той статье, я всё же рекомендую вам прочитать её прежде, чем вы начнёте чтение этого поста, так как это просто необходимо для лучшего понимания некоторых из моих идей.

Читать далее
Total votes 11: ↑9 and ↓2+9
Comments11

Неожиданная эффективность квазислучайных последовательностей

Reading time22 min
Views23K
В этой статье я представляю новую квазислучайную последовательность с низким расхождением, обеспечивающую значительное улучшение по сравнению с современными последовательностями, например, Соболя, Нидеррайтера и т.д.


Рисунок 1. Сравнение различных квазислучайных последовательностей с низким расхождением. Заметьте, что предлагаемая мной $R$-последовательность создаёт более равномерно распределённые точки, чем все остальные методы. Более того, все остальные методы требуют тщательного подбора базовых параметров, а в случае неправильного подбора приводят к вырожденности (например справа вверху)

Рассматриваемые в статье темы

  • Последовательности с низким расхождением в одном измерении
  • Методы с низким расхождением в двух измерениях
  • Расстояние упаковки
  • Множества с многоклассовым низким расхождением
  • Квазислучайные последовательности на поверхности сферы
  • Квазипериодический тайлинг плоскости
  • Маски дизеринга в компьютерной графике

Какое-то время назад этот пост был выложен на главной странице Hacker News. Можете прочитать там его обсуждение.
Total votes 90: ↑90 and ↓0+90
Comments8

Как калькуляторы вычисляют синус?

Level of difficultyEasy
Reading time3 min
Views56K

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

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

Читать далее
Total votes 77: ↑75 and ↓2+95
Comments52

Обзор схемотехнических решений BMS для литиевых батарей

Level of difficultyEasy
Reading time17 min
Views44K
Давно ушли те времена, когда для контроля за состоянием аккумуляторной батареи было достаточно стрелочного амперметра. Литиевые аккумуляторы вполне заслуженно обрели популярность в современных автономных устройствах. Они обладают достаточно высокими характеристиками при весьма доступной стоимости, но очень капризны в эксплуатации.

image

В этой статье представлен краткий обзор на специализированные микросхемы мониторинга и защиты для литиевых аккумуляторов. Давайте вместе попробуем разобраться, как максимально эффективно и безопасно использовать эти аккумуляторы в своих устройствах и какие схемы для этого лучше подойдут.
Читать дальше →
Total votes 73: ↑73 and ↓0+73
Comments87

7 производителей печатных плат вместо JLCPCB. Где можно заказать платы в 2023 году

Level of difficultyEasy
Reading time6 min
Views71K

Привет, Хабр! Я – Дима, в компании отвечаю за закупку компонентов. Долгове время у нас было два поставщика печатных плат. Один из них вышеупомянутый JLCPCB. После того, как он ушел из России, пришла проблема откуда не ждали – второй поставщик начал подводить по срокам и отгружать откровенный брак. 

Встал вопрос о поиске новых производителей. Я пытался найти в сети честные отзывы, но их либо не было, либо были заказные. За год я попробовал работать с 7 производителями. Ниже делюсь своими впечатлениями: плюсы и минусы.

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

Читать далее
Total votes 48: ↑48 and ↓0+48
Comments67

Методы наименьших квадратов без слёз и боли

Reading time10 min
Views50K


Итак, очередная статья из цикла «математика на пальцах». Сегодня мы продолжим разговор о методах наименьших квадратов, но на сей раз с точки зрения программиста. Это очередная статья в серии, но она стоит особняком, так как вообще не требует никаких знаний математики. Статья задумывалась как введение в теорию, поэтому из базовых навыков она требует умения включить компьютер и написать пять строк кода. Разумеется, на этой статье я не остановлюсь, и в ближайшее же время опубликую продолжение. Если сумею найти достаточно времени, то напишу книгу из этого материала. Целевая публика — программисты, так что хабр подходящее место для обкатки. Я в целом не люблю писать формулы, и я очень люблю учиться на примерах, мне кажется, что это очень важно — не просто смотреть на закорючки на школьной доске, но всё пробовать на зуб.

Итак, начнём. Давайте представим, что у меня есть триангулированная поверхность со сканом моего лица (на картинке слева). Что мне нужно сделать, чтобы усилить характерные черты, превратив эту поверхность в гротескную маску?



В данном конкретном случае я решаю эллиптическое дифференциальное уравнение, носящее имя Симеона Деми Пуассона. Товарищи программисты, давайте сыграем в игру: прикиньте, сколько строк в C++ коде, его решающем? Сторонние библиотеки вызывать нельзя, у нас в распоряжении только голый компилятор. Ответ под катом.
Читать дальше →
Total votes 54: ↑54 and ↓0+54
Comments58

Qucs-S: руководство по видам моделирования, часть 1

Reading time10 min
Views9.1K

Qucs-S является программой с открытым исходным кодом для моделирования электронных схем. Qucs-S кроссплатформенный (поддерживаются Linux и Windows) и написан на С++ с использованием набора библиотек Qt. О данной программе рассказывают мои предыдущие статьи. Для работы Qucs-S рекомендуется использовать также открытый движок моделирования Ngspice. Актуальным релизом Qucs-S на текущий момент является версия 2.1.0. В данной статье подробно рассматриваются виды моделирования, имеющиеся в Qucs-S. Начальное руководство по работе с программой можно найти здесь: https://habr.com/ru/articles/678526/

Читать далее
Total votes 30: ↑30 and ↓0+30
Comments30

Обзор подходов к проблеме шероховатости фольги при проектировании высокоскоростных плат

Level of difficultyHard
Reading time24 min
Views6.6K

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

Меня зовут Петр Беляев, я старший системный архитектор в YADRO. Один из многочисленных аспектов деятельности команды, в которой я работаю, — проектирование многослойных высокоскоростных печатных плат. В статье я расскажу о моделях влияния шероховатости фольги на высокочастотные модели в проводнике и приведу пример их применимости при разработке серверной материнской платы, целевой процессор которой поддерживает PCIe Gen5. Но сначала дам контекст, который подробнее ответит на вопрос о том, зачем это все нужно.

Читать далее
Total votes 37: ↑37 and ↓0+37
Comments21
1
23 ...

Information

Rating
3,753-rd
Registered
Activity