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

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

Отправить сообщение

Разработка BIOS на языках высокого уровня

Уровень сложностиСложный
Время на прочтение11 мин
Количество просмотров27K
Ничего лишнего: материнская плата, видеокарта и ROM-BIOS

Меня давно волнует вопрос, как подступиться к разработке на голом железе, на чистом си. Хотелось понять, каким же образом идёт запуск BIOS, u-boot, grub и прочих первичных загрузчиков. Ведь необходимо перейти от ассемблера к тёплому ламповому си и соблюсти условие, собрать всё это в линукс любимым компилятором gcc.

Хотя я и имею достаточный опыт BareMetal-разработки, тем не менее, всё это были чужие проекты со своим кодом. А мне хотелось понять, как начать свой проект с чистого листа, когда есть только чистая железка и идея. Толковых статей как подступится к этой задаче достаточно мало, при этом совершенно непонятно, с какого же края к ней подходить.

Здесь я хочу свести основные моменты разработки BIOS в одном месте и разобраться обо всех проблемах, которые я получил во время своих опытах в разработке (первая и вторая части).
Читать дальше →

5 полезных библиотек Python (с примерами)

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

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

Ознакомиться

Terraform: от незнания к best practices

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

Всем привет! Меня зовут Виктор, я DevOps‑инженер компании Nixys, которая помогает другим компаниям внедрять в их IT‑решения передовые практики DevOps, MLOps и DevSecOps.

Сегодня я приглашаю вас вместе со мной пройти путь «от незнания к best practices» в работе с Terraform. Этот материал подготовлен для серии наших одноименных видеороликов на YouTube, но мы решили дополнить его и предложить вам более детальное описание процесса в этой статье.

Не забывайте следить за нашими обновлениями на YouTube, Habr и подписывайтесь на наш Telegram‑канал DevOps FM — мы всегда рады новым друзьям. Начнём?

Читать далее

Всё про USB-C: резисторы и E-Marker

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

Если вы следите за нашей сагой про USB-C, то уже знаете, что жила CC в этих кабелях используется для коммуникации и определения полярности. Однако есть и один малоизвестный факт, а именно то, что в USB-C коммуникация реализуется через два протокола – аналоговый и цифровой. Сегодня мы разберём аналоговую передачу, получше уяснив роль и принцип работы пресловутых резисторов 5,1 кОм. Помимо этого, мы познакомимся с микросхемами E-Marker и таинственным VCONN.
Читать дальше →

Полное руководство по модулю asyncio в Python. Часть 1

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

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

Перед вами — подробное и всестороннее руководство по использованию модуля asyncio в Python. В частности, здесь будут рассмотрены следующие основные вопросы:

Читать далее

Схемотехника светодиодной двухпроводной гирлянды

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

Новый год прошёл, а вопросы остались.

А вот и ответы

5 библиотек Python для красивого вывода на консоль

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

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

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

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

Давайте начнем!

Читать далее

6 Python декораторов, которые значительно упростят ваш код

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

"Простое лучше сложного".

Лучшая функция Python, которая применяет эту философию из "дзен Python", - это декоратор.

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

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

Болтать не буду. Давайте посмотрим на отобранные мной 6 декораторов, которые покажут вам, насколько элегантен Python.

Читать далее

Когда TCP-сокеты отказываются умирать

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

Когда TCP-сокеты отказываются умирать

В поисках причин, почему установленные соединения не разрываются в некоторых случаях, я набрёл на отличную статью в блоге Cloudflare. Которая в итоге помогла найти не только решение моей проблемы, но и помогла лучше понять как работают таймауты TCP соединений в Linux.

Читать далее

Практическая обработка изображения линии горизонта с помощью Python

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

Краткое руководство по профилированию линии горизонта городской панорамы с помощью Python в несколько строк кода.

Читать далее

Linux: «Бесплатная» RAM за счет процессора

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

Если вы вдруг оказались с ноутом, в котором RAM распаяна, или все слоты уже использованы, или просто нет возможности добавить еще одну планку памяти, то существует простое решение, имя ему zram.

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

Читать далее

Брюнетки против блондинок или как на мониторе показать цвет свечения светильника?

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

Метод демонстрации на мониторе цветности свечения светильника в соответствии с требованиями проекта национального стандарта «Методы определения неоднородности цветности», и шаблоны в MS Excel.

Читать далее

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

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


Полтора килограмма термоядерного Тринидадского Скорпиона я в итоге собрал с одного куста на гидропонике.


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


Небольшая часть урожая


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


Сегодня в меню


  1. Что такое гидропоника и почему она гораздо проще, чем почва с червячками
  2. Никаких дорогих бутылочек. Мешаем компоненты по три рубля за ведро
  3. Питание растения как алгоритм
  4. Как быстро собрать прототип гидропонной установки
  5. Что такое capsicum chinense и как выжить при дегустации

Паттерны взаимодействия с ботами в Telegram: неочевидные практики на Python и баг в мессенджере

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

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

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

Массивный BASH

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

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

бомбить

Тест для проверки цветового разрешения монитора или телевизора при подключении к компьютеру по цифровому видеоинтерфейсу

Время на прочтение7 мин
Количество просмотров169K
«Кто нам мешает, тот нам поможет»
к/ф «Кавказская пленница»


Телевизор в качестве монитора?


В последние годы все более популярным становится использование телевизора в качестве домашнего компьютерного монитора.
И действительно — если еще несколько лет назад типичным для компьютерных мониторов Full HD разрешением (1920x1080) могли похвастаться лишь телевизоры с диагональю 40" и более, слишком большие для настольного монитора, то сейчас нетрудно найти телевизор с Full HD разрешением и с вполне «мониторной» диагональю 32" и меньше. Соответственно и размер пикселя при этом получается близким к «типовому» для настольных мониторов 0,28 мм ± 10% (ну, может быть чуть больше). А если кому-то такой пиксель покажется великоват, то с появлением доступных по цене бытовых телевизоров с разрешением 4k Ultra HD (3840x2160) размер пикселя вполне может конкурировать и с Retina.
К тому же широко распространенные в бытовых телевизорах IPS матрицы по компьютерным меркам считаются весьма «продвинутыми», и ими обычно оснащаются весьма дорогие «профессиональные» мониторы.
Казалось бы вот оно, идеальное решение для экономного домашнего пользователя — купить на грош пятаков небольшой (по телевизионным меркам) относительно недорогой 26"-37" бытовой телевизор с Full HD или Ultra HD разрешением, и в результате получить «компьютерный монитор» с большим (по компьютерным меркам) «профессиональным» IPS дисплеем, который к тому же без дополнительных вложений может быть использован и по прямому «телевизионному» назначению (что для дома тоже немаловажно!).
Однако иной раз результатом такого приобретения становится полное разочарование: компьютерная картинка на экране телевизора оказывается намного хуже, чем на простеньком старом мониторе, вместо которого этот телевизор собственно и приобретался.
Причин этого может быть множество, начиная от несоответствия разрешения соединяющего компьютер с телевизором видеоинтерфейса разрешению телевизионной матрицы, способности телевизора выводить картинку «пиксель-в-пиксель», настроек видеокарты (в частности, Overscan), настроек самого телевизора (например, резкости), проблем с кабелем, и так далее.
В данной статье мы рассмотрим только одну из возможных причин, а именно способность видеоинтерфейса, которым подключен телевизор или монитор к компьютеру, передать полное цветовое разрешение 4:4:4.

Для начала собственно тест:



Если на экране Вам отчетливо видна появляющаяся надпись 4:4:4, и лишь слегка угадывается 4:2:2, то значит видеоинтерфейс компьютер-монитор передает полное цветовое разрешение, и на этом собственно можно закончить тест и чтение статьи.
Тем же, кому интересно, как действует этот тест, а также тем, кто видит 4:2:2 и не видит 4:4:4 (или видит примерно одинаково и 4:4:4, и 4:2:2), и при этом хочет попробовать исправить ситуацию добро пожаловать под кат
Читать дальше →

Пасхалки в DNS

Время на прочтение8 мин
Количество просмотров19K
Сетевой стек TCP/IP не в одночасье стал паутиной, соединившей интернет от края до края. Вся система развивалась довольно бурно, противоречиво, но в целом через инкрементальные усовершенствования в разных местах. Не было какого-то единого плана создания глобальной коммуникационной сети и подходящего под эти цели стека протоколов. Из-за этого вместо сферической семиэтажной OSI в вакууме в наличие у нас есть причудливое смешение технологий и протоколов, где стандарты, написанные в 1970-х всё ещё живы, лягаются и даже обеспечивают нагрузкой ваши боевые сервера.

The less popular 8.8.4.4 is slated for discontinuation
Figure 1. Комикс xkcd на злобу дня

Всё это в полной мере относится к подсистеме разрешения имён, aka name resolving, и DNS, как современной и наиболее полноценной реализации этой ключевой технологии. В качестве такового DNS пережил разнообразных саблезубых тигров и археоптериксов вроде YP/NIS/NIS+ эпохи накопления битов, вследствие чего в нём набралось немало артефактов и пасхальных яиц. Иногда их обнаруживают случайно при раскопках с помощью dig, но есть также и новые, нестандартные применения старого механизма.
Читать дальше →

Команда SED в Linux/Unix с примерами

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

Компиляция из двух смежных статей на тему использования команды sed для редактирования текстовых файлов, включая различные варианты поиска и замены шаблонов, а также всевозможные операции со строками. Идею к публикации этого гайда подал участник nronnie в комментарии к предыдущей статье, посвящённой работе с Bash.
Читать дальше →

Рабочий пример использования ArgoCD

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

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

Читать далее

Борьба с фрагментацией памяти в ядре Linux

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

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

Информация

В рейтинге
6 366-й
Дата рождения
Зарегистрирован
Активность