Задать вопрос
  • Что означает запись?

    @res2001
    Developer, ex-admin
    Похоже, это прям низкий уровень - работа с регистрами UART.
    COMBase - это базовый адрес порта. По этому адресу находятся регистры порта их несколько. Добавляя число вы пишите данные в регистр, соответствующий заданному смещению относительно базового адреса.
    Вот тут есть старинное хорошее описание низкоуровневой работы с UART и последовательным портом, с регистрами и прочим.
    Ответ написан
    Комментировать
  • Что означает запись?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    В контроллере COM-порта несколько регистров. Запись в них определённых значений меняет режим работы порта. Эти регистры адресуются от базового адреса контроллера.
    _outp(COMBase+3,0x80); - Line Control Register (LCR). Установка старшего бита разрешает доступ к делителю.
    _outp(COMBase,0x01); - установка младшего байта делителя (0x01 => 115200 tick/s).
    _outp(COMBase+3,0x03); - отключение доступа к делителю и установка размера символа 8 бит, 1 стоп-бит, без контроля чётности.
    _outp(COMBase+1,0x00); - Inerrupt Enable Register (IER), запрет всех прерываний.
    _outp(COMBase+2,0xC7); - FIFO Control Register (FCR), разрешить буферы FIFO размером 14 байт и очистить их.
    _inp(COMBase); - прочитать байт из буфера.
    www.osdever.net/documents/CP_serial.pdf
    Ответ написан
    Комментировать
  • Как лучше подключать svg иконки во vue js?

    @Pike-meow
    Pike - is a life
    На самом деле, решение зависит от ситуации.

    Если у вас есть не огромный(!) набор иконок для повсеместного использования - то вам нужен SVG Sprite. В других ответах уже накидали даже названий библиотек для Vue.

    Если коротко, то использование выглядит следующим образом:

    Кладете в public файл со спрайтами (обычно, сборка такого файла берут на себя библиотеки. Не хитрый SVG файл, который можно один раз собрать и юзать сборку)

    А далее - элементарный компонент

    Icon.vue
    <template>
      <svg>
        <use :xlink:href="`path-to-sprite.svg#${iconName}`"></use>
      </svg>
    </template>
    
    <script lang="ts" setup>
      defineProps<{
        iconName: string;
      }>();
    </script>


    Использования будет выглядеть следующим образом:
    App.vue
    <template>
      <div>
        <Icon name="some-icon-1" />
        <Icon name="some-icon-2" />
        <Icon name="some-icon-3" />
      </div>
    </template>
    
    <script lang="ts" setup>
      import Icon from './Icon.vue';
    </script>


    Тут есть небольшой подводный камень, связанный с размерами (use не учитывает width, height, viewBox иконки, которая в Spritemap). Обходится элементарно - добавлением размера для svg с помощью CSS.

    Если вам нужны 2-3 иконки - более рационально будет просто заинлайнить их в template. Не очень оптимизировано, зато не тратим кучи времени на ненужные телодвижения.

    В случае с большим количеством иконок (более 500) SVG Sprite будет неэффективен ввиду того, что на каждую страницу будет загружаться тонна ненужных иконок. В таких случаях, лучше хранить иконки без спрайта, просто в ассетах и использовать ссылки на них в <use>.

    Ссылки:
    - https://developer.mozilla.org/en-US/docs/Web/SVG/E...
    Ответ написан
    Комментировать
  • Как лучше подключать svg иконки во vue js?

    @iljaGolubev
    Если точно нужны inline svg, то vue-svg-loader - он делает автоматически ваш 1-й вариант.

    Ещё есть vite-svg-loader - подключается как плагин к vite и удобен тем, что можно из vite.config менять как импортировать файл (url или raw).

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

    через "v-if/v-else-if" рендерить ту, которая равна "close".

    Если у вас всего 2-3 иконки - можно и так, но в общем случае - старайтесь не использовать длинные "портянки" if/else. Почти всегда можно обойтись без такого кода. (conponent is или defineAsyncComponent)
    Ответ написан
    Комментировать
  • Не работает ПК и выдает ошибку хоть раньше проблем? ?не было только техники стало больше?

    @Drno
    Нестабильное напряжение в 220в - ставить бесперебойник
    Либо - нехватает опять же питания из розетки - отключите другие потребители(типа холодоса. микроволновки, чайника итд, что много жрет) и попробуйте
    Ответ написан
    3 комментария
  • Болт для крепления видеокарты к корпусу?

    @Drno
    1е фото - крайний справа
    Ответ написан
    Комментировать
  • Почему метод map in array вернул строку, а не массив?

    Вернул строку, потому, что команда .join(', '); - превращает массив в строку с разделителем ', '
    Ответ написан
    4 комментария
  • Какую базу данных использовать для сервиса маркетинга?

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

    Вам нужно как минимум 2 таблицы

    Domains
    id
    domainname

    Customers
    id
    domainId
    email
    firstName
    lastName

    NoSQL использовать не нужно.
    Ответ написан
    1 комментарий
  • Каким образом определяют наиболее старую версию python для работоспособности кода?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Никто этим не занимается. В современном мире есть 100500 способов виртуализации Python
    библиотек
    . Виртуалки, Докеры, Кубернетисы, И всякие анаконды, конды и прочее что можно
    в командной строке делать просто меняя PATH.
    Ответ написан
    Комментировать
  • Каким образом определяют наиболее старую версию python для работоспособности кода?

    Melkij
    @Melkij
    PostgreSQL DBA
    - у тебя какой версии X?
    - Y
    - ага, а у меня Z. Значит напишем "не тестировалось с X версии ниже Y"


    Спустя время
    - давай поднимем минимальную версию до Z, смотря какая там фича полезная нам была бы
    - хм, вышел он N времени назад, проблемой оказаться не должно, не возражаю, добавь только в доку "требуется X версии минимум Z"


    Так оно и происходит обычно.
    Ответ написан
    Комментировать
  • Почему свитч не видит IP-камеру видеонаблюдения?

    @Drno
    принести свитч к камерам и воткнуть - если работает, проблема в обжиме \ кабеле \ длине
    если не работает - то очевидно что в свитче

    так же могли порты повыгорать, на свитче

    ну или не хватает бюджета POE у свитча, отключите все другие камеры и пробуйте их включить по 1й, те которые не работают
    Ответ написан
    Комментировать
  • Какой роутер выбрать для оптоволокна GPON?

    @Massacre_Rage
    Нельзя купить любой gpon роутер и подключить его, так как на OLT провайдера может стоять блокировка ont других вендоров.
    Даже если блокировки нет, то не факт, что твоя ont заработает с имеющимися профилями, а делать отдельный профиль под конкретно твою ont никто не будет.
    Ну и вдобавок у тебя может оказаться совсем не GPON, а GEPON.

    Поэтому ответ на твой вопрос знает только твой провайдер.
    Ответ написан
    Комментировать
  • В чем отличие ngnix от golang?

    @res2001
    Developer, ex-admin
    Веб сервер занимается обслуживанием сетевых соединений, передачей данных по сети и т.п. вещами.
    Приложения на go, PHP и прочих питонах вызываются веб сервером для генерации ответа на пользовательский HTTP запрос, в приложение в качестве параметра передается сам запрос. В простейшем случае, веб-сервер в качестве ответа может просто возвращать статический файл на диске, а не запускать программу.
    Таким образом приложение напрямую не взаимодействует по сети с клиентом, а работает через посредника - веб-сервер.
    Ответ написан
    7 комментариев
  • В чем отличие ngnix от golang?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    На самом деле эта путаница по-человечески очень понятна и объяснима.
    Вы, как фронтендер, воспринимаете "веб-сервер" как такой черный ящик, "то место, откуда фронт запрашивает данные".

    В то время как этот термин может означать несколько разных понятий.
    1. Веб-сервер в вашем, широком понимании. Бэкенд целиком.
    2. Также веб-сервером может называться и сам компьютер, на котором все это крутится.
    3. В более узком смысле - это программа, которая принимает НТТР запросы. Вот это nginx и есть. Но сам по себе, без помощи других программ, он не может полностью представлять услуги веб-сервера. Например, в нем нет базы данных. Это, скорее, как правильно написали в соседнем ответе - такой прокси-сервер, который частично обрабатывает запросы сам (например к статическим файлам), а частично - проксирует запросы на другие программы.

    И вот на Го (или РНР, Питоне, JS, C#) как раз и пишется эта программа, которая, к примеру, обращается в БД, получает нужные данные и отдает их Nginx-у, который уже и возвращает их клиенту
    Ответ написан
    14 комментариев
  • В чем отличие ngnix от golang?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Ну раз с фронта пересели, то аналогию понять должны: В чëм отличие Google Chrome от JavaScript?
    Ответ написан
    3 комментария
  • Как при сборки мусора и перемещении объекта, сохраняется корректность ссылок?

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

    Если ты используешь unsafe и передаёшь куда-то сырые указатели, то тогда тебе надо запинить объект чтобы гарантировать, что объект не будет перемещаться. Для этого, например, есть конструкция fixed, но оно работает только в рамках блока и одного потока.
    Ответ написан
    Комментировать
  • Как при сборки мусора и перемещении объекта, сохраняется корректность ссылок?

    yarosroman
    @yarosroman Куратор тега C#
    C# the best
    Там выше посоветовали книгу Конрада Кокосы, добавлю от себя книгу Саши Гольдштейна и у Станислава Сидристого есть недописанная книга. Еще на ютубе с dotNext`а можно посмотреть, что то было интересного про внутненности dotnet`а.
    Ответ написан
    Комментировать
  • Как достать текст из буфера обмена?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Ответ написан
    Комментировать
  • Как при сборки мусора и перемещении объекта, сохраняется корректность ссылок?

    AshBlade
    @AshBlade Куратор тега C#
    Просто хочу быть счастливым
    Управление памятью в .NET для профессионалов

    Как работает сборка мусора.
    В .NET используется 2 фазная сборка мусора: Mark & Sweep (Пометить и Убрать).

    Mark

    На этом этапе обходится весь граф объектов. И выявляются все недостижимые.

    Каким образом достижимость объектов определяется?

    Достижимые это:
    - Аллоцированные на стеке
    - В статических полях
    - Достижимые из достижимых (см. выше)

    Все объекты, которые не удалось достичь (в граф не попали) - являются недостижимыми.

    Но на стеке лежат числа. могут быть как числами, так и адресами, как и числами?

    JIT копилятор достаточно умный, чтобы сгенерить код, который будет знать, что за объект/ссылка лежит на стеке. Так и получаются знания об объектах.

    Sweep

    Тогда итог, что языки с сборщиком мусора, под в 2 раза медленнее должны быть.(помимо сборки)

    Вот тут интереснее. Есть несколько хаков как достигается большая производительность.
    1. Линеризованное пространство памяти.
    Адреса 0, 1 и 2 поколения расположены не абы где, а последовательно, друг за другом. Т.е. если нужно сократить пространство 0 поколения, то это означает простое передвигание указателя влево.

    2. Переход в след. поколение происходит не всегда
    Из 0 в 1 - переход быстрый, но из 1 в 2 - не всегда.
    На этом этапе тоже может не затрачиваться много времени.

    3. Ссылки из недостижимых объектов не обновляются - эти объекты и так нигде не участвуют
    Обновление ссылок, к сожалению, - это ручное изменение и копирование. Ничего не поделаешь.

    Теперь где-то, сборщик мусора, начинает переносить arr в другое место.

    Ты слишком большой массив выделил, он аллоцируется в LOH. Оттуда не вытащишь.

    Я много о чем не упомянул. Например, очередь финализации, таблица дескрипторов (Handle), сегментирование памяти и т.д. но ответы на основные вопросы дал
    Ответ написан
    2 комментария