Задать вопрос
  • В чем ошибка 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 комментарий
  • Можно ли рассторгнуть договор самозанятого?

    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 Куратор тега C
    Дома с переломом ноги
    разве они не аналогичные?

    Нет.
    *(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 комментариев
  • Как можно улучшить код?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Как можно улучшить код?

    - отформатировать по какому-нибудь стандарту, чтобы хотя бы строчки не гуляли влево-вправо.
    - пользоваться тернарным оператором вместо if когда это имеет смысл. На мой взгляд, d = n < 0 ? -n : n выглядит куда лучше семистрочного if/else.
    - не дублировать код когда этого легко избежать:
    if(n<0) {
        cout<<"-";
    }


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

    CORS-это не сайт, а браузер твой ругается. Выставляй корректные CORS-заголовки
    Ответ написан
    Комментировать
  • Как запустить сервер nodejs без порта?

    vabka
    @vabka Куратор тега Веб-разработка
    но не будет ли возникать конфликтов в работе клиента и сервера,

    Не должно. Просто разруливай по путям - что к бэку должно идти, а что на статику.

    А чтобы "без порта" надо запускать на 80 и 443 порте.
    Но если на этой же машине nginx стоит, то будет конфликт.
    Ответ написан
    Комментировать
  • Пару вопросов по использованию докера в продакшене?

    Griboks
    @Griboks
    Использовать докер в продакшене - нормальное решение?

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

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

    Выкидываете build и git, создаёте docker registry, предварительно собираете образы (без гита, только полезные файлы в slim образе), пушите их в реестр, на проде прописываете нужные образы нужных версий. Поднимаете через compose + устанавливаете restart = unless stopped.

    после чего память на сервере закончилась

    Выкидываете git, делаете docker system prune раз в месяц, ставите в настройках демона ротацию логов.

    Автоматический бекап базы данных - ответственность самого сервиса (в коде делать дамп), докера (использовать какой-то image для бекапов) или сервера (непосредственно на сервере настроить крон)?

    Docker image не используется для бэкапов, потому что он не может изменять свои файлы. Файлы изменяются в контейнерах, volume или маунтах.
    Поэтому бэкап - это задача сервера. Только бэкапить надо не рядом с базой, а на другой сервер.

    Как не терять данные из бд при перезапусках контейнера?

    Контейнер не теряет файлы при перезапуске. Скорее всего, вы его тупо удаляете, а затем пересоздаёте.

    Но тк приложение работает в докере, я не могу выполнить nano app.logs для просмотра логов.

    Писать логи в другое место/ docker attach / docker cp / экспорт логов и метрик в сервис мониторинга.

    p.s.
    Вот вам линтер для обучения.
    Ответ написан
    Комментировать
  • Пару вопросов по использованию докера в продакшене?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    1. Использовать докер в продакшене - нормальное решение?

    Нормальное.
    3. У меня был сервер на 50 гигов

    Докер хранит все слои, образы и логи, периодически, необходимо чистить не используемые образы docker system prune.
    4. Автоматический бекап базы данных

    Я бы cron использовал для этого.
    5. Как не терять данные из бд при перезапусках контейнера?

    Не использовал, но слышал много хорошего про Docker volumes.
    6. Node.js приложение само пишет нужные мне логи и кладет в корень проекта.

    Docker volumes.
    Ответ написан
    Комментировать
  • Почему Response.status это значение, а status = { Response } это ссылка на Response?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    Деструкция выглядит так: const { status } = result;
    Вы же создаёте переменную status и в неё записываете объект {result: result}.
    Поэтому возвращает ваша функция вот такую конструкцию:
    {
      data: ...,
      status: {
        result: result,
      }
    }
    Ответ написан
    Комментировать