• Каким образом корректно извлечь первый подходящий элемент массива jsonb в Postgresql?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега PostgreSQL
    Седой и строгий
    select data ->> 'region' as region
    from some_table
    cross join lateral jsonb_array_elements(some_jsonb_field) as t(data)
    where data ->> 'addressType' = 'юридический';
    Ответ написан
    1 комментарий
  • Где найти список случайно набранных комбинаций на клавиатуре?

    @kalapanga
    А что Вы собираетесь делать, если все начнут вводить Иванов Иван Иванович?
    Без валидации личности смысла в Ваших "красивых" именах ничуть не больше, чем в абракадабре - и то и другое просто набор букв.
    Ответ написан
    1 комментарий
  • Как постоянно получать данные с БД?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Почитать про брокеры, типа kafka/rabbit mq
    Ответ написан
    1 комментарий
  • Как постоянно получать данные с БД?

    @rPman
    Использовать базу данных как источник событий - плохая идея, т.е. это возможно, разные базы данных предлагают для этого разные инструменты, типа sqlite notifications, postgres notify, у mysql точно видел как мониторили изменения читая binary logs напрямую, в любом случае это извращения.

    У тебя уже должен быть процесс, обслуживающий websocket и обрабатывающий все действия клиентов, пусть этот процесс и делает необходимые манипуляции на приходящие события либо отправляет сообщения по другим каналам. Т.е. база данных это только место для данных, человек отправил сообщение, бакэнд это сообщение обработал, положил данные в базу данных и дернул метод/послал сообщение что в базе появилось сообщение с таким id (или как тебе удобно), вторая часть бакэнда это сообщение получает, читает данные из базы и обрабатывает дальше (лично я считаю разделять на разные процессы это бессмысленно но мало ли какая у тебя задача)
    Ответ написан
    Комментировать
  • Как использовать модель внутри useFactory | NestJs?

    yarkov
    @yarkov
    Помог ответ? Отметь решением.
    здесь мне нужно вызвать proxyService.find()

    Что-то у вас пошло не так, раз появилась такая необходимость )) Так не работает.
    Ответ написан
    2 комментария
  • Что делать с ответами которые сгенерировала нейросеть?

    @Drno
    если ответ правильный - какая разница?
    это форум - вопрос \ ответ ))
    если хоть 1 человек найдет потом по поисковику ответ на вопрос - уже хорошо)
    Ответ написан
  • Если бы вам предложили написать свою ОС с нуля (никаких Linux), какой ЯП вы бы выбрали?

    15432
    @15432
    Системный программист ^_^
    Rust
    Ответ написан
    Комментировать
  • Как решить вопрос ожидания в асинхронном программировании?

    @Akela_wolf
    Extreme Programmer
    Тут проблема не в асинхронном коде, а в том что обработка ваших данных занимает слишком много времени. Если бы у вас обработка данных была синхронной - была бы та же проблема.

    Таким образом, у вас 2 варианта:
    1. Увеличить таймаут на nginx (или кто там отвечает 502 Gateway timeout), чтобы он ждал ответа 10 минут. Пользователю при этом тоже придется ждать. На фронте в это время можно рисовать "крутилку" или запустить прямо в браузере тетрис :)
    2. Делать общение с фронтом асинхронным тоже. Пользователь загружает файл, файл уходит в обработку и фронту сразу же возвращается 200 OK + идентификатор задачи. Фронт с определенной периодичностью (10-30 секунд) опрашивает по идентификатору бэк "ну что, закончилась обработка?". И как только закончилась - бэк ему отдает итоговый файл. Пока обработка не закончилась - бэк может отдавать данные о количестве обработанных записей, что позволит фронту рисовать прогресс-бар, например.
    2а. Тоже самое что и в п.2, но уведомление о завершении задачи посылает бэк через WebSocket.
    Ответ написан
    Комментировать
  • Как правильно разделять файлы и папки в проекте?

    Aetae
    @Aetae
    Тлен
    Хз, это спорный вопрос. Я юзайю одинаковую иерархическую сруктуру. Т.е. на верхнем уровне у меня есть папки components, utils итд, дальше у каждого сложного компонента \ страницы своя папочка с точно такой же структурой относящаяся конкретно к этому компоненту. И так вглубь. Если что-то становится общим - оно едет выше, что-то локальное - ниже. Но я не претендую на истину, и кому-то это может показаться ужасным.)
    Ответ написан
    1 комментарий
  • Насколько реально перейти из геймдева в энтерпрайз?

    vabka
    @vabka
    Токсичный шарпист
    Хочу свичнуться в энтерпрайз, java + react (пока приблизительно так).

    А почему Java, а не C#? Будет проще, кмк.
    Есть ли у меня шансы стартануть не с самых низов, а хотя бы с уровня джуниор+ по зарплатам?

    Зависит от ваших навыков - если вы три года работали в команде, а не соло, то вероятнее всего да.
    Как обычно к таким переходам относятся работодатели?

    Нормально, лишь бы мог адекватно объяснить.
    Какой джуниор будет ценнее: тот, у которого есть достаточно опыта в разработке, но в другой сфере, или тот, который пусть немного (полгода-год), но поработал на нужном стеке?

    Зависит от джуниора и того, с кем его сравнивают.
    Ответ написан
    9 комментариев
  • Что такое Статический и Динамический массив?

    @res2001
    Developer, ex-admin
    Память под статический массив выделяется на стеке. При выходе из области видимости стек очищается и память под массивом освобождается автоматически (не нужна операция освобождения памяти, операция есть, но о ней позаботится компилятор самостоятельно).

    Память для динамического массива выделяется в динамической памяти (в куче) (new[]). Когда массив становится не нужным память должна быть освобождена (delete[]), иначе произойдет утечка памяти.

    В связи с вышеизложенными принципиальными отличиями, есть несколько следствий:
    1. Имя статического массива это не указатель. Это можно понять например сравнив, что возвращает sizeoff() для статического массива и для динамического. Хотя в некоторых ситуациях компилятор ведет себя так, как будто имя статического массива это указатель, например: можно передать имя статического массива в функцию, принимающую указатель.
    2. У динамического массива нет имени. Операция new[] возвращает указатель. Имя есть у указателя.
    3. Внимание! Оба варианта массивов имеют фиксированный размер. Изменять его нельзя!
    То что в std::vector вы можете укладывать кучу элементов постепенно, не указывая нигде предварительного размера является следствием того, что std::vector скрывает от вас всю работу, которую он при этом делает. При добавлении нового элемента, для которого нет места, он выделяет память для нового массива большего размера, копирует старый массив в новый, удаляет старый массив, добавляет новый элемент. Если идет интенсивная работа с push_back(), то это может ОООЧЕНЬ дорого стоить. std::vector - это удобно, но необходимо всегда помнить, за счет чего достигается это удобство. std::vector - это не динамический массив - это обертка над ним для более удобной работы с динамическим массивом.

    В языке Си (C99) есть такая штука как Variable Length Array (VLA) - это статический массив с изменяемым размером. Т.е. вы можете, например, в функции объявить int arr[N], где N будет передаваться в функцию как параметр.
    В стандарте С++ VLA нет! Но, например, тот же gcc с опциями по умолчанию разрешает его использования в С++ проектах. С опциями, заставляющими gcc более жестко следовать стандарту, он может запрещать использовать VLA в С++ проектах. Но не рассчитывайте, что все компиляторы будут так делать. Например микрософтовский компилятор в принципе не умеет в VLA (хотя я уже пару лет не проверял это).
    VLA может показаться классной штукой.
    Но, например, в ядре Линукс в свое время проводили целую компанию по выпиливанию VLA из исходников. Торвальдс высказывался негативно про VLA. Все это при желании можно нагуглить.
    Стоит помнить, что размер стека ограничен, а VLA то же выделяется на стеке. Кроме того выделение памяти для обычного статического массива это просто увеличение счетчика стека на константу (и все, одна операция сложения регистра с константой, а компилятор одной операцией выделяет память для всех переменных в текущей области видимости). С VLA все сложнее с выделением и удалением. Так же sizeof() для обычного статического массива это операция времени компиляции (при выполнении будет уже заранее известная константа), для VLA - это полноценный вызов функции.
    Ответ написан
    1 комментарий
  • Код для бинарного поиска Python. Как работать с индексами в этом коде?

    Воу-воу.
    Изучил базу языка программирование Python
    и
    что делает list[mid],
    как-то не вяжутся. Стоит проверить, точно ли выполнен пункт "изучил базу языка программирования Python", если не понятно что это получение значения из списка по его индексу.

    В этом коде индексы - это переменные low, mid, high.
    Ответ написан
    1 комментарий
  • Как изменить числа в строке на 0, если меньше 5 и на 1, если больше 5?

    0xD34F
    @0xD34F Куратор тега JavaScript
    Array.from(str, n => n < 5 ? 0 : 1).join('')
    
    // или
    
    [...str].reduce((acc, n) => acc + +(n >= 5), '')
    
    // или
    
    ''.concat(...str.split('').map(n => Math.floor(n / 5)))
    
    // или
    
    [].map.call(str, n => -~-~-~n >> 3).join``
    
    // или
    
    str.replace(/./g, m => Number('56789'.includes(m)))
    
    // или
    
    str.replace(/[1-4]/g, 0).replace(/[5-9]/g, 1)
    Ответ написан
    Комментировать
  • Как типизировать замыкание?

    Kozack
    @Kozack
    Thinking about a11y
    type CustomType = ReturnType<changeFormStateHandlerType>
    Ответ написан
    Комментировать
  • Как решить данное ТЗ для QA?

    datka
    @datka
    Кидаешь в бесконечный цикл.
    while True:
    	print("") # Твой вывод тут.
    	time.sleep(20)
    Ответ написан
    Комментировать
  • Как правильно отправить json POST запросом?

    @abberati
    frontend-разработчик
    Воспользуйтесь современным удобным апи, не мучайте себя и браузер

    https://learn.javascript.ru/fetch#post-zaprosy
    Ответ написан
    Комментировать
  • Как создать объект в одну строку на C#?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    var simpleObj = new SimpleObject(Color.Red, ObjectSize.Medium);

    var simpleObj = new SimpleObject{Color = Color.Red, Size = ObjectSize.Medium};


    И даже в быдло стайле
    var simpleObj = new { color = "red", size = "medium" };
    Ответ написан
  • DELETE FROM list WHERE id = 'id строки в списке дел'. Как мне указать этот id?

    @alexalexes
    1. Подготовить текст запроса prepare-функцией.
    2. Присобачить нужные параметры запроса bind-функцией.
    3. Выполнить запрос execute-функцией.
    Запрос не выполняется? Посмотреть ошибки.
    PS: В любой непонятной ситуации читай документацию.
    Ответ написан
    Комментировать