Как стать автором
Обновить
56
0.2
Иван Зайцев @Zuy

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

Тайны пингвина: как работают исключения и прерывания в Linux?

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

image


Привет, хабр! Моя прошлая статья о работе памяти в Linux вам понравилась. Сегодня мы разберем работу исключений и прерываний.


Что это, как они работают в ОС и Linux? Давайте разберемся вместе!

Читать дальше →
Всего голосов 41: ↑35 и ↓6 +29
Комментарии 8

Память как у пингвина: Работа памяти в Linux

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

Что такое память и какие они бывают в Linux? Как с ней взаимодействовать? Каковы её особенности?

Как реализована память в ядре Linux? Как с ней работать?

Что такое кластеры, откуда в ядре Linux грязные и чистые страницы - читайте в этой статье!

Читать далее
Всего голосов 101: ↑97 и ↓4 +93
Комментарии 55

Дизайн-система Gravity UI: как легко построить свой интерфейс

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

Всем привет, я Алексей Сизиков, руководитель отдела User Experience в Yandex Cloud. В этой статье я хочу поделиться новостью: мы выпустили нашу дизайн-систему и библиотеку компонентов Gravity UI в опенсорс. 

Под катом — рассказ, зачем мы сделали Gravity UI, как его используем, в чём особенности и преимущества нашего подхода и как мы планируем развивать его дальше. А ещё — как настроить разные цветовые схемы в своих проектах и почему у нас четыре темы вместо двух стандартных.

Читать далее
Всего голосов 71: ↑69 и ↓2 +67
Комментарии 27

Релиз ядра Linux 6.6: возможности, обновления и самые заметные изменения

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


В мире Linux все идет своим чередом, и идет по плану. Спустя два месяца после выхода предыдущего релиза ядра выпущен новый. На днях Линус Торвальдс представил ядро Linux 6.6. Как всегда, в нем достаточно много изменений и исправлений. Всего — 15291 исправлений от 2058 разработчиков. Изменены 14844 файла, добавлено 553359 строк кода, удалено — 284012. Подробности обо всем этом — под катом.
Читать дальше →
Всего голосов 56: ↑56 и ↓0 +56
Комментарии 0

Объяснение терминологии Arm: Arm ARM, Armv9, ARM9, ARM64, Aarch64, A64, A78…

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

Если вы новичок в экосистеме Arm, то считайте это кратким введением в терминологию, которую вы могли видеть раньше, но понимаете не до конца.

Архитектура Arm — это семейство архитектур с набором упрощённых команд (Reduced Instruction Set Architecture, RISC) с режимами простой адресации. Обработка данных выполняется над регистровыми операндами, в противном случае используются загрузки и сохранения для перемещения данных в регистры и из них.

Arm Limited — это британская компания, занимающаяся разработкой и поддержкой архитектуры Arm.

ARM — это устаревшая аббревиатура Acorn RISC Machine, а позже — Advanced RISC Machines. Как мы увидим ниже, в случае развития архитектуры предыдущую терминологию иногда переименовывают.
Читать дальше →
Всего голосов 35: ↑35 и ↓0 +35
Комментарии 6

Работаем с PostgreSQL в Go. Опыт Авито

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

Привет! Меня зовут Дима Вагин, я бэкенд-инженер в Авито. Сегодня расскажу, как мы работаем с БД PostgreSQL из Go. Покажу, какие библиотеки и пулеры соединений мы используем для доставки в код параметров подключения и как мы их настраиваем. А ещё расскажу про проблемы, к которым приводит отмена контекста, и о том, как мы с ними справляемся.

Читать далее
Всего голосов 29: ↑27 и ↓2 +25
Комментарии 16

Отладочный вывод на микроконтроллерах: как Concepts и Ranges отправили мой printf на покой

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

Здравствуйте! Меня зовут Александр и я работаю программистом микроконтроллеров.

Начиная на работе новый проект, я привычно набрасывал в project tree исходники всяческих полезных утилит. И на хедере app_debug.h несколько подзавис.

Дело в том, что в декабре прошлого года у GNU Arm Embedded Toolchain вышел релиз 10-2020-q4-major, включающий все GCC 10.2 features, а значит и поддержку Concepts, Ranges, Coroutines вкупе с другими, менее "громкими" новинками С++20.

Воодушевленное новым стандартом воображение рисовало мой будущий С++ код ультрасовременным и лаконично-поэтичным. И старый добрый printf("Debug message\n") в это благостное видение не очень-то вписывался.

Хотелось бескомпромиссной плюсовой функциональности и стандартных удобств!

Например, таких:
Всего голосов 26: ↑23 и ↓3 +20
Комментарии 19

Отладка Makefile /часть 1/

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

Отладка makefile - это что-то из черной магии. К несчастью, не существует такой вещи как makefile отладчик, чтобы изучить ход выполнения конкретного правила или как разворачивается переменная. Большую часть отладки можно выполнить с помощью обычных print’ов и проверкой makefile. Конечно, GNU make немного помогает своими встроенными методами и опциями командной строки. Один из лучших методов отладки makefile это добавить отладочные перехваты (hooks) и использовать техники безопасного программирования, на которые можно будет опереться, когда дела пойдут совсем плохо. Далее представлено несколько основных техник отладки и практик безопасного программирования, которые будут, на мой взгляд, наиболее полезными.

Дай две!
Всего голосов 31: ↑31 и ↓0 +31
Комментарии 5

Пишем движок полнотекстового поиска на Go

Время на прочтение 8 мин
Количество просмотров 17K
Полнотекстовый поиск — один из тех инструментов, которые мы используем практически каждый день, когда ищем какую-то информацию в интернете. Full-Text Search (FTS) — это метод поиска текста в коллекции документов. Документ может ссылаться на веб-страницу, газетную статью, сообщение электронной почты или любой структурированный текст.

Сегодня мы собираемся написать собственный движок FTS. К концу этой статьи он сможет выполнять поиск по миллионам документов менее чем за миллисекунду. Начнём с простых поисковых запросов, таких как «Выдать все документы со словом cat», а потом расширим движок для поддержки более сложных логических запросов.

Примечание: самым известным движком полнотекстового поиска является Lucene (а также Elasticsearch и Solr, построенные на его основе).
Читать дальше →
Всего голосов 47: ↑46 и ↓1 +45
Комментарии 23

Собеседование в Додо Пиццу

Время на прочтение 9 мин
Количество просмотров 85K
Прочитав название статьи, вы можете задаться вопросом: «На черта мне нужно знать о собеседовании в Додо Пиццу?». И будете правы. Она не для всех. У нас действительно не IT-корпорация вроде Гугла, Амазона или Майкрософта, но сложный и интересный бизнес, зародившийся на стыке традиционных пиццерий и IT. У нас место для разработчиков, которым важно влиять на бизнес и строить глобальную систему с нуля, в кайф постоянно расти и работать над сложными задачами, использовать новые решения, опираясь на здравый смысл и доверие, которые понимают, что люди важнее процессов.

В этой статье я расскажу, как устроен наш пайплайн найма и дам несколько советов о том, как к нам устроиться.



Читать дальше →
Всего голосов 106: ↑61 и ↓45 +16
Комментарии 382

Пишем декодер для sigrok

Время на прочтение 8 мин
Количество просмотров 8.8K
image

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

Его особенностью является открытый исходный код, а также, то что за декодирование сигналов отвечает open-source библиотека sigrok. Вместе с внушительным списком уже существующих декодеров сигнала эта библиотека предоставляет API для написание собственных. Этим мы и займемся.
Читать дальше →
Всего голосов 24: ↑24 и ↓0 +24
Комментарии 10

Руководство по FFmpeg libav

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

Долго искал книгу, в которой было бы разжёвано, как использовать FFmpeg-подобную библиотеку, известную как libav (название расшифровывается как library audio video). Обнаружил учебник «Как написать видеоплеер и уложиться в менее чем тысячу строк». К сожалению, информация там устаревшая, так что пришлось создавать мануал своими силами.

Большая часть кода будет на C, однако не волнуйтесь: Вы легко всё поймёте и сможете применить на любимом языке. У FFmpeg libav уйма привязок ко многим языкам (в том числе и к Python и к Go). Но даже если Ваш язык прямой совместимости не имеет, всё равно можно привязаться через ffi (вот пример с Lua).

Начнём с краткого экскурса о том, что такое видео, аудио, кодеки и контейнеры. Затем перейдем к ускоренному курсу, посвященному использованию командной строки FFmpeg, и, наконец, напишем код. Не стесняйтесь переходить сразу в раздел «Тернистый путь изучения FFmpeg libav».

Есть мнение (и не только моё), что потоковое интернет-видео уже приняло эстафету от традиционного телевидения. Как бы то ни было, FFmpeg libav точно достоин изучения.

Оглавление


Читать дальше →
Всего голосов 65: ↑65 и ↓0 +65
Комментарии 13

Методы наименьших квадратов: текст, написанный программистом для программистов

Время на прочтение 19 мин
Количество просмотров 36K
Продолжаю публикацию своих лекций, изначально предназначенных для студентов, учащихся по специальности «цифровая геология». На хабре это уже третья публикация из цикла, первая статья была вводной, она необязательна к прочтению. Однако же для понимания этой статьи необходимо прочитать введение в системы линейных уравнений даже в том случае, если вы знаете, что это такое, так как я буду много ссылаться на примеры из этого введения.

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


Читать дальше →
Всего голосов 84: ↑80 и ↓4 +76
Комментарии 13

Когда хочется красивый GUI, а gpu нет

Время на прочтение 3 мин
Количество просмотров 17K
Обычно для рабочих утилит не требуется вменяемый UI, с кнопками, списками, окнами, поддержкой мыши и прочей мелочевкой, большинство рабочих «хотелок» можно упаковать в скрипты и иногда запускать их с параметром --help, и так будет даже правильней с точки зрения настройки и масштабирования. Все становится хуже, когда тулами начинают пользоваться не только команда разработки, но и сторонние люди. А они не всегда готовы вникать в стройные мысли, уложенные в строчки кода. И тогда приходится городить UI, а он у разработчиков выходит обычно простой, квадратный, функциональный и совсем скучный. Некоторое время назад я работал над небольшой системой управления вентиляцией/обогрева/камерами и еще того «что придумает вон тот дядечка в желтой каске» для подземной автостоянки.


Читать дальше →
Всего голосов 34: ↑33 и ↓1 +32
Комментарии 22

Очень много YouTube-каналов для прокачки английского языка для программистов

Время на прочтение 4 мин
Количество просмотров 60K
Привет, Хабр!

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

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

Поучить английский


AJ Hoge. На его канале есть всё: от базовых слов до размышлений о важности языка тела в общении. Чувак пилит видосы уже много лет, материальчик накопился.

EngVid. Если бы можно было выбрать что-то одно для улучшения английского, то это оно. Разные преподы и тематики, постоянное обновление, бездонный ресурс. Ещё сайт одноимённый крутой, с удобной навигацией — можно найти очень узкую тему по интересам.
Читать дальше →
Всего голосов 59: ↑52 и ↓7 +45
Комментарии 19

Десятка лучших докладов C++ Russia и плейлист конференции в открытом доступе

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

Этот хабрапост объединяет десять лучших докладов от таких спикеров, как Nicolai Josuttis, Timur Doumler, Андрей Давыдов и многих других.


C++17/20/23, concepts, immutable data structures, concurrency, parallelism, metaprogramming — всё это темы конференции C++ Russia 2019, прошедшей этой весной в Москве. Более шести сотен участников, известные международные спикеры, глубокие доклады. Обратите внимание — доклады такие, что устареют очень нескоро, а применить полученные знания можно хоть сейчас.



Формат таков:


  • Обязательное видео на YouTube
  • Подробное описание доклада на русском языке (со слайдами, если они есть)
  • Краткая биография докладчика

Не стесняйтесь писать комментарии! Кстати, в плейлисте, опубликованном под катом, есть не только топ-10. И мы выключили рекламу на YouTube, так что никто не будет мешать.

Читать дальше →
Всего голосов 32: ↑31 и ↓1 +30
Комментарии 0

Синглтон, размещающий объекты в ROM и статические переменные(С++ на примере микроконтроллера Cortex M4)

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

В предыдущей статье Где хранятся ваши константы на микроконтроллере CortexM (на примере С++ IAR компилятора), был разобран вопрос о том, как расположить константные объекты в ROM. Теперь же я хочу рассказать, как можно использовать порождающий шаблон одиночка для создания объектов в ROM.
Читать дальше →
Всего голосов 21: ↑18 и ↓3 +15
Комментарии 87

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

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


Перемещением сегментов в этом дисплее управляют два кулачка, поворот которых синхронизирован зубчатыми колёсами. Все сегменты, кроме центрального, возвращаются в исходное положение резиновым кольцом, центральный перемещается в обоих направлениях кулачками.
Читать дальше →
Всего голосов 69: ↑68 и ↓1 +67
Комментарии 39

Выбор телевизора себе, любимому, с позиции науки, а не рекламы

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

Всем привет.

На написание этой небольшой статьи меня натолкнул спор касательно выбора телевизора.

Сейчас в этой области — равно как в «мегапикселях для камер» — царит маркетинговая вакханалия в погоне за разрешениями: HD Ready давно сменились на Full HD, а уже становятся всё более популярными 4К и даже 8К.

Давайте разберёмся — а что нам реально-то нужно?
Читать дальше →
Всего голосов 142: ↑124 и ↓18 +106
Комментарии 346

ZX Spectrum 128k своими руками. Часть 2

Время на прочтение 6 мин
Количество просмотров 44K
image
Первая часть здесь

Все изображения кликабельны.

Прошло больше года c того момента как я написал статью про сборку клона ZX Spectrum «Ленинград». И за это время его возможности существенно расширились. Не думал что я буду писать ее продолжение, но все таки статей по ретрокомпьютерам не так уж и много, поэтому решился.

Порт расширения


Компьютер к которому ничего нельзя подключить очень ограничен в возможностях и я решился припаять к нему порт расширения. Кроме 40 pin IDE на плату больше ничего не влезало, но подсчитав количество нужных мне контактов вышло что хватит и этого. Минус один контакт на ключ, 2 контакта на +5в, 2 контакта на землю.
Читать дальше →
Всего голосов 85: ↑85 и ↓0 +85
Комментарии 54

Информация

В рейтинге
2 232-й
Откуда
Milpitas, California, США
Дата рождения
Зарегистрирован
Активность