Pull to refresh
4
0.3

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

Send message

Торопиться не надо… (Про спинлоки)

Reading time13 min
Views16K

После небольшой статьи про особенности при работе с кэшем (https://habr.com/ru/post/687146/) мне в личку прилетело несколько замечаний про работу спинлоков и приглашение на собес от пчелайнов, приятно, что технические статьи читают не только технари... лирика. Возвращаясь к обсуждению спинлоков, вышедших за рамки хабра, если это вызвало интерес, почему бы не написать про работу с этими примитивами синхронизации. Тема действительно интересная, да и разработчики придумали более десятка разновидностей спинлоков под разные вкусы и нужды. Все опять будет с тестами и примерами работы. @tbl Линус действительно прав, в юзерспейсе спинлоки "зло злющее", но как обычно есть нюансы...

Читать далее

Cache pollution? Запасайтесь тестами

Reading time16 min
Views11K

Всем ведь приходилось заниматься улучшением производительности? Для игр особенно актуально, ну может какая-то три-в-ряд не страдает этим. Как обычно серебряной пули нет, начинаем со структур данных, алгоритмов, спускаемся ниже если не помогает, придумываем SoA, AoS шаблоны. Если проблема не решается, подтягиваем профайлеры и предметно разбираем узкие места, но все чтобы мы не делали зачастую таким узким местом всегда будет "железо". Можно сколько угодно оптимизировать другие места, но CPU c его гигагерцами будет простаивать 90% времени если его неправильно "кормить" данными. Одной (только одной из проблем) проблемой организации эффективной работы с данными будет меньше, если знать и уметь работать с кэшами разных уровней. Тут на вики описано, как "на пальцах" быстренько убить перф на обходе массива, простого и общего решения для такого обхода нет. Можно и дальше увеличивать размер кэша, что собственно и делают (гдето здесь на хабре была новость, что Интел при переходе на L1 кэш размером 32кб, заново спроектировал блок доступа к нему, сорян не нашел ссылку), но это дорого, неэффективно на масштабах современных процов, и всегда найдутся данные, которые этот кэш отравят, опять. Интересно как починить? го под кат...

Читать далее

Открытый проект по тестированию файловой системы exFAT и SD карт на встраиваемых устройствах с помощью MATLAB

Reading time8 min
Views3.7K

Для тестирования выбрана аппаратная платформа на базе чипа STM32H753VIH с частотой ядра 480 МГц. Подключение к SD карте выполнено через интерфейс SDMMC с частотой 60 МГц. В качестве драйвера работает стандартная библиотека STM32H7xx_HAL. Используется промежуточное программное обеспечение FileX из пакета Azure RTOS поддерживающее exFAT.

Читать далее

Ещё раз о гидропонике

Reading time15 min
Views43K

Статья об успешном опыте выращивания шести кустов помидоров на гидропонике - дома, на балконе, без регистрации и СМС без ардуино и автоматизации, а только с помощью разума и сил природы. Написана чайником для чайников.

Читать далее

Глубокое погружение в Java Memory Model

Reading time53 min
Views199K


Я провел в изучении JMM много часов и теперь делюсь с вами знаниями в простой и понятной форме.


В этой статье мы подробно разберем Java Memory Model (JMM) и применим полученные знания на практике. Да, в интернете накопилось достаточно много информации про JMM/happens-before, и, кажется, что очередную статью про такую заезженную тему можно пропускать мимо. Однако я постараюсь дать вам намного большее и глубокое понимание JMM, чем большинство информации в интернете. После прочтения этой статьи вы будете уверенно рассуждать о таких вещах как memory ordering, data race и happens-before. JMM — сложная тема и не стоит верить мне на слово, поэтому большинство моих утверждений подтверждается цитатами из спеки, дизассемблером и jcstress тестами.

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

Технология создания динамических моделей на примере обогрева помещения

Reading time14 min
Views9.1K

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

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

В данном переводе сделан акцент на последовательность шагов. Я так же добавил несколько собственных комментарий к каждому шагу. 

Читать далее

Начинаем работать с BACnet

Reading time13 min
Views13K
imageМногие из нас, наверное, смотрели боевики и видели, как герои, сидя в темной комнате, удаленно управляют дверями в зданиях, открывая и закрывая их. Управляли освещением, лифтами, чтобы помочь кому-то куда-то пройти или, наоборот, помешать – ну и думали, что да, в теории такое возможно, и в каких-то зданиях, вероятно, есть какая-то автоматизация, но больше это кажется какой-то выдумкой. Так получилось, что в устройство, которое мы делаем, заказчик захотел добавить поддержку BACnet. Так я познакомился с тем, что, оказывается, существует специализированный протокол для автоматизации зданий, который развивается аж с 1987 года.
Читать дальше →

Типы таблиц в PostgreSQL: logged, unlogged и temporary tables

Reading time11 min
Views41K

В PostgreSQL существует большое количество разных типов таблиц. Каждая из них предназначена для решения конкретных задач. Самая распространённая и известная — heap table или стандартная таблица. Про её структуру я рассказывал в прошлой статье. Стандартная таблица позволяет хранить строки, обновлять данные, делать OLAP и OLTP-запросы.  

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

Читать далее

Как сдать английский язык на сертификат ESOL SELT В1 для визы Skilled Worker

Reading time6 min
Views9.1K

Знакомый айтишник собрался подаваться на британскую визу. Среди прочих документов для подачи на Skilled Worker visa потребовался сертификат В1, которого у него не было, и надо было срочно готовиться к экзамену. Поэтому он обратился ко мне, как к преподавателю английского.  Делюсь собранными данными, своими рекомендациями, если вы соберетесь сдавать SELT В1, и личным опытом моего знакомого. Приложенные скриншоты взяты из видео LanguageCert с информацией по прохождению Listening/Reading/Writing /Speaking, которые доступны здесь и здесь. Материалы с пробными экзаменами, включая аудиоматериалы и ответы, можно скачать по ссылке.

Запись на сдачу, cтруктура экзамена и тайминг

Записаться в любой из центров можно здесь. Экзамен состоит из двух блоков (чтение/аудирование/письмо и устная часть) и в Армении проходит в American University of Armenia. Необходимо выбрать дату отдельно на обе части. Знакомый записывался на сдачу за месяц до экзамена. Он выбрал временные слоты таким образом, чтобы пройти все части за один день, и заплатил 235 долларов по карте он-лайн. 

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

Оба блока проходят он-лайн на компьютере с наушниками в лингафонном кабинете: open-space с отдельными столами и компьютерами для каждого студента. Устная часть - это интервью с сертифицированным инструктором. Темы базируются на ежедневных ситуаций и практическом опыте взрослого человека.

Читать далее

NORVI ENET: ESP32 + Ethernet W5500 (а что, так можно было?)

Reading time8 min
Views11K


Продолжаем знакомство с контроллерами Norvi и на этот раз разберём устройство и назначение довольно продвинутой модели AE06-T, принадлежащей к семейству NORVI ENET. Контроллеры этой линейки имеют все достоинства рассмотренных ранее устройств NORVI IIOT, а кроме этого — сетевой Ethernet интерфейс на чипе W5500, встроенный картридер, внешнюю антенну и Micro-USB разъём.

Здесь мы имеем контроллер с двумя интерфейсами (Wi-Fi и проводной Ethernet), что позволяет создавать на нём интересные решения по автоматизации с подключением к различным сетям, резервированием подключений, передачей данных из одной сети в другую и прочими нетривиальными возможностями.

Интересным является и само по себе использование «старой-доброй» микросхемы W5500 вместо обычно используемого для ESP32 чипа физики LAN8270A — что и как там устроено и как это всё работает будем разбираться далее…
Читать дальше →

Радикальная удалёнка… налоговый рай архипелаг Свальбард

Reading time4 min
Views36K

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

Lat oss gå (поехали)!!

Мои вопросы работодателю, когда подаюсь на разработчика

Reading time9 min
Views89K

За последние 10 лет я поменял 3 работы, прособеседовался с 10+ компаний на позицию разработчика (software engineer) и вел переписку с HR/рекрутерами из нескольких десятков фирм. По ходу дела заметил, что вопросы, которые я задаю на собеседовании с менеджером/командой или с HR, повторяются, и решил их структурировать. Некоторые из них являются общими, и их может задать кандидат на почти любую вакансию; другие касаются только вакансий для программистов. В этой статье поделюсь с вами наиболее типичными и важными вопросами, которые, на мой взгляд, может задать соискатель потенциальному работодателю.

Читать далее

Как сделать удобную дизайн-систему. Цвета. Часть 1

Reading time3 min
Views11K

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

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

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

Читать далее

Как спроектировать фильтр электромагнитных помех для DC-DC преобразователя?

Reading time9 min
Views27K

Поставщики компонентов наперебой рассказывают, как просто при помощи их изделий создать готовое к промышленному выпуску решение. После посещения одного из таких мероприятий от Wurth Electronic по проектированию пассивных фильтров электромагнитных помех (ЭМП) у меня появились смутные сомнения по поводу методики подбора компонентов, и мы решил провести собственное исследование.

Сегодня мы постараемся рассеять маркетинговый туман и внести осознанность в проектирование фильтров ЭПМ для импульсных преобразователей (DC-DC).

Читать далее

Основы линейной алгебры для 3D-приложений. Урок 2

Reading time7 min
Views27K

Продолжаем разбираться с линейной алгеброй для 3D-приложений вместе Александром Паничевым — ведущим разработчиком логики в UNIGINE. В прошлом уроке мы поговорили про предназначение математики в трехмерной графике и вспомнили основные операции над векторами. А в этом уроке переходим к более сложным темам: углы Эйлера и кватернионы.

Читать далее

SRAM PUF. Внедрение уникальных ID по «цифровому отпечатку» микросхем

Reading time5 min
Views2.7K


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

Как это происходит, если вкратце?
Читать дальше →

Математика для 3D-приложений. Урок 1

Reading time6 min
Views33K

Это первый, вводный урок по линейной алгебре для разработки 3D-приложений от Александра Паничева — ведущего разработчика логики в UNIGINE. В этом уроке разберемся зачем 3D-разработчикам вообще нужна линейная алгебра, а также рассмотрим основные операции над векторами.

Читать далее

Работаем с Аудио через Командную Строку на Linux и Windows

Reading time12 min
Views17K

Если ты тоже, как и я, любишь возиться с аудио файликами, слушать, записывать, конвертировать и т.д., то эта статья для тебя. Здесь я расскажу, как можно легко выполнять различные действия с аудио из командной строки, причём делать это одинаково удобно и эффективно и на Линуксах, и на Винде. Для этого мы будем использовать программу fmedia. Она кросс-платформенная и портативная, быстрая и не требует ничего лишнего - в общем, в самый раз для тех людей, кто одержим идеей разумной минималистичности и экономии ресурсов.

В чём в принципе бонус интерфейса командной строки перед графическим?

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

* Во-вторых, любую команду можно исполнять на удалённой машине, подключённой по SSH, например.

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

* Нет никаких ограничений на максимальное количество файлов в активном плейлисте. Можно играть плэйлист с тысячей трэков, можно с миллионом - на скорость работы это никак не влияет.

Читать далее

3 способа использовать box-shadow в CSS

Reading time7 min
Views110K

Тени помогают сделать визуальную составляющую сайта интересной и эстетичной. В посте рассмотрим свойство CSS box-shadow и то, как его можно стилизовать.

Читать далее

Прохождение интервью в международные компании для Product и IT специалистов

Reading time3 min
Views5.3K

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

Читать далее

Information

Rating
3,116-th
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity