• Как реализован механизм работы в программе punto switcher?

    @maximq
    QA Engineer
    Работает по принципу кейлоггера, весь набираемый текст анализируется программой, при нахождении совпадений набранное слово заменяется.
    Ответ написан
    1 комментарий
  • Почему webpack обфусцирует код и можно ли это отключить?

    Fragster
    @Fragster
    помогло? отметь решением!
    "Почему обфусцирует?" - Для уменьшения размера
    "Можно ли отключить?" - Надо выключить https://webpack.js.org/configuration/optimization/...
    По поводу "медленнее" - это результат замеров или предположение?
    Ответ написан
    3 комментария
  • На сколько Java отличается в обозначении типизации от C# для понятия TS?

    vabka
    @vabka Куратор тега C#
    Токсичный шарпист
    У TS типизация структурная и там есть алгебраические типы данных, а у C#/Java номинативная и алгебраических типов данных нет (upd: хотя вроде в жаве есть enum class)
    Ответ написан
    3 комментария
  • На сколько Java отличается в обозначении типизации от C# для понятия TS?

    xez
    @xez Куратор тега Java
    TL Junior Roo
    Странная идея вообще учить язык А или Б для того чтобы понять язык В.
    Учите TS чтобы понимать TS, учите C# чтобы понимать C#.
    Ответ написан
    Комментировать
  • Почему показывает, что прокрутки у страницы нету в while, хотя она есть?

    delphinpro
    @delphinpro Куратор тега JavaScript
    frontend developer
    Потому что ваш цикл while блочит поток выполнения.
    Можно воспользоваться функцией setInterval – каждый новый запуск будет выполнятся в новой итерации цикла событий (event loop), давая браузеру время на выполнение других необходимых задач. Например пересчитать и перерисовать объекты на странице.

    Ответ написан
    Комментировать
  • В чем ошибка SyntaxError: Unexpected token?

    yarkov
    @yarkov Куратор тега JavaScript
    Помог ответ? Отметь решением.
    Файл 228.php вернул html, а ожидается json
    Ответ написан
    5 комментариев
  • Почему присвоение значения переменной не считается использованием переменной?

    Потому что вы должны хотя бы раз прочитать значение переменной. Во всех случаях, которые вы приводите, где ошибки нет — значение переменной где-то читается.
    Это сделано, чтобы исключить ряд багов, которые может допустить программист (например, зашедоуить переменную из скоупа выше и присвоить значение во временную переменную вместо оригинальной переменной).
    Ответ написан
    3 комментария
  • Когда вписывать технологию в свой стек?

    paran0id
    @paran0id
    Умный, но ленивый
    Когда готов ответить на вопросы по ней на техническом собеседовании.
    Ответ написан
    Комментировать
  • Как сделать динамичные фильтры на rust diesel?

    Torin_Asakura
    @Torin_Asakura
    Lead Architect
    Дмитрий Беляев прав, тут действительно лучше использовать функции вместо макросов. Макросы в Rust штука довольно мощная, но проигрывает функциям по гибкости, особенно когда дело доходит до сложной логики и типизации.

    Давай прикинем решение твоей задачки. У дизеля есть такая штука как трейты. Вот коленочный пример:

    use diesel::prelude::*;
    use serde_json::Value;
    use std::collections::HashMap;
    
    fn apply_filters<T>(mut query: T, filters: &HashMap<String, Value>) -> T
    where
        T: diesel::query_builder::AsQuery,
        T::Query: diesel::query_builder::QueryFragment<diesel::pg::Pg> + Query,
    {
        for (key, value) in filters {
            match value {
                Value::String(s) => {
                    query = query.filter(diesel::dsl::sql(&format!("{} = '{}'", key, s)));
                },
                // Сюда можно закинуть остальные типы
                _ => {}
            }
        }
        query
    }
    
    async fn get_list(
        pool: web::Data<DatabasePool>,
        list: web::Json<List>
    ) -> Result<HttpResponse, ApiError> {
        use schema::users::dsl::*;
    
        let base_query = users.into_boxed(); // Пример базового запроса
        let query_with_filters = apply_filters(base_query, &list.filters.unwrap_or_default());
    }
    Ответ написан
    Комментировать
  • Как увидеть список и типы разделов на вставленной, но неподмонтированной флешке?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    как пример можете взять вывод утилиты lsblk за основу
    $ lsblk -o NAME,RM,TRAN,SIZE,TYPE,PTTYPE,FSTYPE,PARTTYPENAME,MOUNTPOINTS,MODEL | awk 'NR==1 || $2 == 1'
    NAME        RM TRAN     SIZE TYPE PTTYPE FSTYPE  PARTTYPENAME       MOUNTPOINTS                  MODEL
    sda          1 usb     14,7G disk dos    iso9660                                                 Transcend 16GB
    ├─sda1       1          789M part dos    iso9660 Empty              /run/media/admin/ARCH_202309 
    └─sda2       1           15M part dos    vfat    EFI (FAT-12/16/32)

    где RM это флаг съёмного устройства, 1 съёмное а 0 не съёмное, TRAN device transport type в общем тип устройства usb, ssd, nvme ..., с остальными параметрами думаю боле-мене ясно, их можно убавить по желанию.
    С помощью `awk` мы отфильтруем(`$2 == 1`) тока съёмные устройства, ну и заодно оставим шапку(`NR==1`) для информативности.
    При желании это можно вывести более кратко
    $ lsblk -o NAME,RM,FSTYPE,MOUNTPOINTS | awk '$2==1{$2="";print}'
    sda  iso9660
    ├─sda1  iso9660 /run/media/admin/ARCH_202312
    └─sda2  vfat

    где наличие третьего столбца у раздела говорит о его смонтированности

    п.с.
    тег CentOS тут думаю лишний, такая информация получается с помощью стандартных линукс утилит

    п.с.2
    может быть такая ситуация когда файловая система записана напрямую на весь диск без таблицы разделов, тогда вывод будет выглядеть примерно так:
    $ lsblk -o NAME,RM,TRAN,SIZE,TYPE,PTTYPE,FSTYPE,PARTTYPENAME,MOUNTPOINTS,MODEL | awk 'NR==1 || $2 == 1'
    NAME        RM TRAN     SIZE TYPE PTTYPE FSTYPE PARTTYPENAME     MOUNTPOINTS MODEL
    sda          1 usb     14,7G disk        ext4                                Transcend 16GB

    значение в PTTYPE будет отсутствовать

    п.с.3

    можно даже так с отфильтрованным и отформатированным выводом через json
    $ lsblk -Jpo PKNAME,NAME,RM,FSTYPE,MOUNTPOINTS | jq -r '.blockdevices[] | select(.rm == true) | .children[] |select(.mountpoints[] == null) | "Съёмное устройство \(.pkname) имеет не смонтированный раздел \(.name) с файловой системой \(.fstype)"'
    Съёмное устройство /dev/sda имеет не смонтированный раздел /dev/sda2 с файловой системой vfat

    для учета файловой системы которая записана на весь диск без таблицы разделов необходимо в команду выше добавить некоторые условия, но это уже будет вашей разминкой.
    Ответ написан
    4 комментария
  • Стоит ли перепоступать в другой вуз ради айти?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    то меня не возьмут именно с дипломом по такой специальности.

    На диплом по большему счету все равно. Главное - это навыки. (Если это не гос. контора - там потребуют)
    учёба (в вузе) максимально не напряжная

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

    Уходить не стоит - чтобы поступить в нормальный вуз надо не хило так постараться, а если выбрать другие, то программа отстала, скорее всего.
    Ответ написан
    5 комментариев
  • Как сделать такой эффект для курсора?

    victormayorov
    @victormayorov
    Frontend разработчик
    легко гуглиться
    Ответ написан
    1 комментарий
  • Можно ли рассторгнуть договор самозанятого?

    vabka
    @vabka
    Токсичный шарпист
    1. Не существует "договора самозанятого". Самозанятость - это статус, при котором ты можешь вместо НДФЛ платить НПД, а твой заказчик не обязан выступать твоим налоговым агентом.

    2. Ты просто заключил какой-то договор. В любом договоре должны быть условия для его расторжения, в том числе досрочного, если у договора есть срок.
    Если условий нет - используются общие основания: ГК РФ ст 450

    ГК РФ Статья 450. Основания изменения и расторжения договора
    В каких случаях можно изменить предмет или иное существенное условие договора

    1. Изменение и расторжение договора возможны по соглашению сторон, если иное не предусмотрено настоящим Кодексом, другими законами или договором.

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

    (абзац введен Федеральным законом от 08.03.2015 N 42-ФЗ)

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

    1) при существенном нарушении договора другой стороной;

    2) в иных случаях, предусмотренных настоящим Кодексом, другими законами или договором.
    Существенным признается нарушение договора одной из сторон, которое влечет для другой стороны такой ущерб, что она в значительной степени лишается того, на что была вправе рассчитывать при заключении договора.

    3. ...

    4. Сторона, которой настоящим Кодексом, другими законами или договором предоставлено право на одностороннее изменение договора, должна при осуществлении этого права действовать добросовестно и разумно в пределах, предусмотренных настоящим Кодексом, другими законами или договором.

    (п. 4 введен Федеральным законом от 08.03.2015 N 42-ФЗ)


    Если это был договор на оказание услуг, то ты, как исполнитель, можешь в одностороннем порядке отказаться от оказания услуги, но ты обязан будешь вернуть все деньги, которые тебе выплатили авансом.
    Например:
    У тебя был договор на оказание услуг на 100к рублей, в рамках которого ты должен был оказать две услуги.
    При этом вы с заказчиком договорились, что плата будет вноситься частями: 50% аванс и 50% по факту выполнения.
    Первую услугу ты оказал, за что тебе оплатили положенные 50к и аванс 25к за следующую.
    Но вот ты отказываешься от своих обязательств - тебе нужно будет вернуть эти 25к аванса.
    (А то и ущерб, если в процессе ты ещё какой-то ущерб нанёс.)


    нужно искать новую работу, потому что на эти деньги тупо не прожить

    А вот это уже пахнет нарушением закона, тк у ваших отношений с заказчиком есть признак трудовой деятельности. (Как между работником и работодателем)
    Ответ написан
    Комментировать
  • Как происходит кеширование, если вызывает функция slow?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    В js функция не является чем-то особенным и неприкасновенным.

    function slow(x) { ... }
    Утириовано: создана функция и положена в переменную slow, аналогично:
    var slow;
    slow = function (x) { ... };


    slow = cachingDecorator(slow);
    Пишем в переменную результат вызова cachingDecorator с аргументом из slow.

    Всё происходит по порядку:
    0. Создаётся функция и кладётся в пременую slow.
    1. Берётся текушая функция из slow.
    2. Кладётся в аргуметы cachingDecorator.
    3. Результат cachingDecorator(slow) кладётся в переменную slow.

    Есть всякие нюансы и оговорки, но в целом не следует переусложнять, со всеми сущностями в js можно работать одинаково.
    Ответ написан
    5 комментариев
  • В чем разница записи массива через указатели?

    CityCat4
    @CityCat4
    Внимание! Изменился адрес почты!
    разве они не аналогичные?

    Нет.
    *(current-1) // Взять значение по адресу current - 1
    (*current-1) // Взять значение пo адресу current и вычесть из него (значения) 1
    Ответ написан
    Комментировать
  • В чем разница записи массива через указатели?

    wataru
    @wataru
    Разработчик на С++, экс-олимпиадник.
    Проблема в том, что * выполняется перед вычетанием. *(current-1) - это предыдущий элемент. (*current-1) в плохой версии - это текущее значение минус 1.
    Ответ написан
    Комментировать
  • Что не так с алгоритмом шифрования фотографий?

    @U235U235
    Никогда не используй сжатие с потерями jpeg для таких целей. Используй PNG.
    Ответ написан
    2 комментария
  • Использование Linux?

    smorman
    @smorman
    When In Rome do as The Romans do...
    Переключись с Wayland на Xorg и будет тебе счастье!

    Все симптомы, что ты описал - это как раз из вяленого (Wayland), а он по умолчанию в последних релизах (x)buntu.
    Пока что основная масса желзяк (дрова к ним) не работают корректно или вообще не работают под ним из-за недоработок, а вернее нежелания разрабов допилить вяленого, как положено.

    Переключись на Xorg и всё будет работать, аки АК-47!

    Как это сделать?
    Вот в этом посте я дал ссылку на статью, как это сделать:
    пост
    Ответ написан
    5 комментариев
  • Теоретические знания в собеседованиях важны?

    Snakecharmer
    @Snakecharmer
    Широкопрофильный менеджер и аналитик
    Глубокие теоретические/философские вопросы всегда были уделом интеллектуальной элиты, а не плебеев))) Кем вы хотите быть: элитным айтишником или нет?

    ИТ-сфера по своей природе практична. Может сложиться ложное впечатление что теория не важна. В реальности же, глубокое понимание теории обязательное требование на любые middle+, senior, lead вакансии. Потому что эти специалисты решают проблемы, а не просто тасочки в джире. Сложно занять высокую должность не стремясь проникнуть в смысл вещей. Не стремясь понять какие процесы происходят в кишках у фреймворка/библиотеки/языка/субд... да без разницы чего ещё.

    Важно не то что делает ваша функция. Важно как делает. И почему именно так делает. И почему до сих пор именно так. Знание теории отлично помогает понять границы применимости ваших технологий. Посмотрите вот этот 8-минутный отрывок, где фронтендер объясняет что надо спрашивать у джунов, мидлов и сеньоров.

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

    Поэтому не надо для собеседований ничего заучивать. Собеседование - всегда стресс, вы всё забудете. Наберитесь терпения, и учитесь. Со временем к вам всё придёт.
    Ответ написан
    8 комментариев