• Куда утекает память в read Rust?

    vabka
    @vabka
    Токсичный шарпист
    TL;DR; 10400000 * 100 - это как раз почти гигабайт.
    В текущем виде это компилироваться не должно, тк as_slice возвращает ссылку, а чтобы структура могла содержать в себе ссылку - нужно добавить лайфтайм в объявление структуры => этот же лайфтайм нужно будет указать в сигнатуре функции.
    Сейчас ни того ни другого я не вижу и код не должен компилироваться по причине того что ты пытаешься вернуть ссылку на данные, которые живут только в рамках fn get.
    Если же BinValue на самом деле владеет вектором, то это не утечка, а вполне ожидаемое поведение.
    Смотри, где должен он дропаться в будущем.

    1. Тут можно достаточно легко избавиться от unsafe:
    let res = self.get_index_and_file(key);
    
    if res.is_none() {
        return None;
    }
    
    let (file, info) = unsafe { res.unwrap_unchecked() };


    Превращается в
    let Some((file,info)) = self.get_index_and_file(key) else {
      return None;
    };


    2.
    Вообще достаточно странный код.
    На этой строке мы создали вектор - это ок. Он требует места в куче. Хотя странно, что info.0 у нас u64, а не usize
    let mut buf = vec![0; info.0 as usize];
    file.read().unwrap().read_at(info.1, &mut buf).expect("failed to read");

    Тут мы файл прочитали. Возможно был смысл сделать BufRead, но не думаю, что он тут бы тут много чего сделал бы.
    В остальном тут нет аллокаций.

    3. А вот это уже выглядит реально подозрительно:
    return Some(BinValue::new(buf.as_slice()));
    Это вообще компилируется? Покажи, что из себя представляет BinValue.
    По хорошему оно должно брать ownership над вектором.


    Если оставить код таким, то через 10 400 000 вызовов этой функции с заполнение буфера 100-байтовыми значениями утечёт примерно 1 ГБ памяти

    10 400 000 * 100 = как раз примерно гиг.
    Если BinValue в действительности берёт ownership, то это вполне себе ожидаемое поведение, а не утечка.

    4. Ещё я бы на всякий случай убрал #[inline(always)]
    Ответ написан
  • Как организовать БД, если данные нужно отправлять по разным АПИ, в запросах которых поля отличаются?

    vabka
    @vabka
    Токсичный шарпист
    Если не упарываться в NoSQL, то можно классическим реляционным подходом - EAV-паттерн применить.
    Если постгрес, то можно его в документ-ориентированную базу превратить, благодаря jsonb полям.

    Я бы ввёл две таблицы:
    1. "Описание услуги" - с перечислением всех полей, которые должны быть указаны в заявке. (чтобы можно было сформировать форму)
    2. "Заявка" - там все специфичные поля записываются в jsonb-колонку.

    GraphQL позволит гибко настраивать payload для внешних API

    Мне кажется, что в этом случае GraphQL не очень подходит, так как у контрагентов может быть свой интерфейс взаимодействия => всё равно в коде нужно будет реализовать коннектор для каждого.
    Ответ написан
    1 комментарий
  • Есть ли готовый регексп для удаления мата?

    vabka
    @vabka
    Токсичный шарпист
    Нет, потому что русский язык обладает очень богатыми средствами словообразования.
    Если делать через регулярки, то либо очень много ложных срабатываний, либо будет пропускать очень много словоформ.

    Да и от проблемы "дети шуточно переводят субтитры" - это никак не избавит.

    Емнип, автор видео может проверять субтитры, прежде чем их одобрить - вот и проверяй.
    Ответ написан
  • В чем отличие ФЭО от ТЭО при создании ГИС/ИС?

    vabka
    @vabka
    Токсичный шарпист
    1. То что аббревиатуры похожие - не значит, что они относятся к одной и той же сфере.
    2.
    Чем они регламентируются, каким НПА?

    Никаким.
    3.
    В каком случае нужно ФЭО либо только ТЭО, или нужны всегда оба документа?

    Никакой. Если организация хочет разработать ИС, то она берёт и разрабатывает. Никому со стороны ничего обосновывать не нужно.


    Технико-экономическое обоснование (ТЭО) — документ, в котором представлена информация, из которой выводится целесообразность (или нецелесообразность) создания продукта или услуги. ТЭО содержит анализ затрат и результатов какого-либо проекта. ТЭО позволяет инвесторам определить, стоит ли вкладывать деньги в предлагаемый проект.

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



    А ФЭО

    Финансово-экономическое обоснование (финансово-экономическое оценивание), ФЭО — форма оценки воздействия, преимущественно используемая для оценки изменений чистых денежных потоков, возникающих в результате реализации мер государственного регулирования, принятия нормативных правовых документов, корпоративных программ, направленных на изменения в социально-экономической сфере
    Ответ написан
    Комментировать
  • Есть ли какие то способы скачать IDE xcode на винду для ios разработки, или найти аналоги, на которых так само можно билдить аппки?

    vabka
    @vabka
    Токсичный шарпист
    Компилировать приложения для ios можно исключительно на macos.
    Где эта macos стоит - вопрос другой.
    Можно мак, можно хакинтош, можно на виртуалку извернуться и установить, можно использовать облачные сервисы.
    Ответ написан
    Комментировать
  • Есть ли отвественность за генерацию случайных данных?

    vabka
    @vabka
    Токсичный шарпист
    И возник вопрос есть ли какие-то юридические ограничения на создание таких библиотек?

    Никаких таких запретов нет, так как тут нет состава преступления.

    Например для телефона можно добавить страну и оператора, при этом условии реальные номера будут проскакивать чаще

    Шанс совпадения имя+фамилия+отчество+номер телефона реального человека катастрофически мал, хоть и не равен нулю.

    Если очень боишься - генерируй номера телефонов и карт, которые заведомо не принадлежат никакому банку или оператору.
    Ответ написан
    Комментировать
  • Как устроен HTMX под капотом?

    vabka
    @vabka
    Токсичный шарпист
    У нас есть JavaScript на стороне клиента (библиотека)

    Да.

    которая посредством атрибутов общается

    Нет. Атрибуты сообщают библиотеке, что нужно делать: отправить запрос, изменить DOM, вызвать какой-то js итд.

    простеньким веб-сервером

    Не простенький, а самый обычный.

    инжектит HTML в страницу без перезагрузки страницы?

    Не только лишь. Да и инжект - это что-то стороннее, а тут вполне себе предусмотренное поведение.
    Ответ написан
    4 комментария
  • Возможно ли последовательное подключение мониторов HDMI - Монитор 1 - display port - Монитор 2?

    vabka
    @vabka
    Токсичный шарпист
    Нет. hdmi не поддерживает daisy chain.

    В компьютере установлена видеокарта только с одним HDMI выходом.

    Тоесть кроме одного hdmi выхода там вообще совсем ничего нет?
    Ответ написан
    6 комментариев
  • Как лучше сохранять результаты логирования приложения NET?

    vabka
    @vabka Куратор тега C#
    Токсичный шарпист
    Nlog

    Кмк, он немного переусложнён.
    Я бы посмотрел в сторону стандартного Microsoft.Extensions.Logging или Serilog (но из кода всё равно обращаться к M.E.L.Abstractions)

    SQLite

    Зачем? Какую проблему ты хочешь решить применяя для логов полноценную субд, с которой к тому же не будут нормально интегрироваться другие инструменты для просмотра логов?

    На линуксе уже есть встроенная служба для логов - syslog, ей и пользуйся.

    Хотя опять же зависит от того, что за приложение и что за логи.
    Ответ написан
    2 комментария
  • Будет ли работать Gigabyte GeForce GTX 970 с недостаточным питанием?

    vabka
    @vabka
    Токсичный шарпист
    Recommended system power supply requirement: 400W(with one 8-pin external power connectors)

    В теории, питание достаточное.

    А если питание не достаточное - в моменты повышенных нагрузок хороший БП будет уходить в защиту и выключаться.
    Ответ написан
  • Влияет ли наличие сведений о прохождении лечения у психотерапевта на отказ в офере?

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

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

    Если твоё состояние важно для выполнения работы, то работодатель перед трудоустройством просто отправит тебя на медкомиссию за справкой и никакая мифическая СБ с доступами туда, куда доступа быть не должно, тут даже не понадобится.
    IT не относится к профессиям, где необходима подобная справка от врача. (В отличие от транспорта, армии или полиции, например)

    А о том, что служба безопасности видит/не видит и по каким критериям они могут тебе отказать - ходит больше легенд, чем правды.
    Если верить всему, что об СБ тут пишут, то в крупных компаниях сейчас бы никто не работал.

    На практике СБ смотрит на:
    1. твои долги в ССП (особенно по штрафам, тк у штрафов есть источник)
    2. наличие банкротства. Как минимум банкроту запрещено работать на руководящей должности (в банке аж 10 лет после получения статуса)
    3. вероятность наличия конфликта интересов (если тебя, например, собеседовал твой бывший коллега или вообще твоим новым начальником будет твой родственник и не только)
    4. Твоя кредитная история, но только если ты подпишешь разрешение на доступ к ней.
    5. Отзывы предыдущих работодателей и коллег
    6. Судимости. В первую очередь уголовным. На госслужбу с непогашенной судимостью в принципе нельзя. + А некоторые виды организаций нельзя устраиваться, если у тебя есть судимость по определённым статьям.
    7. Твои соцсети. Просто не пиши в своих соцсетях лишнего.

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

    На практике я не слышал, чтобы разработчиков как-то очень тщательно проверяли.

    Допустим если я пройду курс лечения у психотерапевта, консультации + антидепрессанты

    Если это вопрос "проходить или не проходить, чтобы не загубить карьеру", то ответ очевиден: обязательно иди и лечись, если тебя что-то беспокоит.

    Если решишь "не губить карьеру в госучреждении" (велика потеря), то:
    В лучшем случае - будешь потом тут задавать вопросы о том, как избавиться от слежки.
    В худшем - больше никакие вопросы не будешь задавать в принципе.

    Если это вопрос о том, стоит ли говорить работодателю о своём здоровье - ответ тоже очевидный: никогда не говори работодателю о каких-либо диагнозах. Ему это знать не обязательно.
    Ответ написан
    7 комментариев
  • Откуда может быть такое (необычно большое) количество просмотров одного поста в канале?

    vabka
    @vabka
    Токсичный шарпист
    Вообще в телеге админ канала может посмотреть статистику по каждому посту - вероятно кто-то репост сделал.
    Ответ написан
    5 комментариев
  • Как программным методом удалить одну из итераций цикла for?

    vabka
    @vabka Куратор тега C#
    Токсичный шарпист
    Можно добавить ещё 1 вложенный цикл, чтобы человек повторно вводил слово, пока не введёт уникальное.
    Это будет самый оптимальный вариант, как мне кажется.
    Ответ написан
  • Знаете площадки для поиска наставников?

    vabka
    @vabka
    Токсичный шарпист
    Ну например на career.habr.com есть эксперты, которые могут выполнять функции ментора.
    Ответ написан
  • Необходим ли цап для наушников Audio Technica ATH-A990Z?

    vabka
    @vabka
    Токсичный шарпист
    1. Youtube сильно сжимает => какой бы ЦАП ты не взял, разницы ты не услышишь.

    2. Отдельный усилитель тебе не обязателен, импеданс вполне стандартный.
    Ответ написан
    Комментировать
  • Как вывести на панель дополнительное время в Windows?

    vabka
    @vabka
    Токсичный шарпист
    Посмотри в сторону T-Clock: https://github.com/White-Tiger/T-Clock
    Там много настроек по кастомизации.

    + Пишут что ещё rainmeter так умеет.
    Ответ написан
    Комментировать
  • База по разработке ПО с плагинами на C++?

    vabka
    @vabka
    Токсичный шарпист
    Существуют ли книги - я не знаю, но фундаментально ничего не изменилось:

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

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

    Из нового ещё появился webassembly: он удобен тем, что разработчик плагина может выбрать в принципе любой язык, и запускаться он сможет на любой платформе.
    Ответ написан
    Комментировать
  • Как работают бекенд разработчики в банковской сфере?

    vabka
    @vabka
    Токсичный шарпист
    Что за приколы такие?) Какой способ оптимальнее выбрать и вообще есть ли смысл во все это соваться? Как то напрягает что в любой момент кто то может подключиться к твоему ноуту. Не особо я привык своей приватностью делиться) Есть что скрывать, подписан в тг на паблики с голыми женщинами

    Ну так не логинься на рабочий ноут в телеграм-канал с голыми женщинами, лол.
    И вообще лучше нивкакой личный аккаунт на рабочем железе не логиниться.
    Ответ написан
  • Как правильно разрабатывать symfony приложение локально?

    vabka
    @vabka
    Токсичный шарпист
    Как правильно разрабатывать контейнеризированное приложение локально без необходимости устанавливать все зависимости на хост?

    Можно использовать devcontainer. Поднимаешь контейнер со всеми зависимостями, внутрь vs code remote, а все исходники - в Volume
    Ответ написан