• Стотит ли менять asp.net mvc на asp.net web api + nextjs?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    нормально себя чувствует.

    Работает и не трогай
    Ответ написан
    3 комментария
  • Как правильно выводить COUNT?

    @Everything_is_bad
    открой учебник по python и почитай как работать с типом tuple
    Ответ написан
    Комментировать
  • Почему целесообразнее не использовать new для работы с классами, а предпочесть DI?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега PHP
    Вот почему: PHPunit замокать класс внутри тестируемого класса?
    Бонус-раунд: DI упрощает работу с зависимостями зависимостей. Если ваш MyService принимает какой-нибудь логер в зависимостях, который в свою очередь ожидает какой-нибудь драйвер файловой системы, вы задолбаетесь собирать их через new.
    Ответ написан
    Комментировать
  • Какой проект можно сделать на PL/pgSQL новичку?

    @Everything_is_bad
    Никогда не сталкивался с задачами где нужен PL/pgSQL, соответственно не понимаю зачем нужен.
    он тебе не нужен, особенно для pet-project
    Ответ написан
    Комментировать
  • AI программисты ученые или обычные разработчики?

    Maksim_64
    @Maksim_64
    Data Analyst
    1. Про взаимодействие:
    программирование прикладная дисциплина, и осуществлять работу с так называемым AI может совершенно любой человек. Среди людей работающих с така называемым AI есть физики, химики, биологи, экономисты, финансисты, разработчики игр, веб разработчики, люди не имеющие четкой специализации и т.д.

    2. Про разработку:
    современный AI требует взаимодействия множества разных специалистов.

    3. Итог:
    да есть ученые работающие над созданием AI примеров много, из известных ну например, Yoshua Bengio. Это один из явных примеров именно ученого. Но есть и не ученые работающие именно над созданием новых систем AI, и работают эти люди, как в маленьких компаниях, так и в корпорациях.
    Ответ написан
    Комментировать
  • Как правильно мержить в main из dev, если там есть незаконченные фичи?

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

    Мержить через cherry-pick - такое себе: одна ошибка и ты ошибся (фатально)
    Ответ написан
    Комментировать
  • Как правильно мержить в main из dev, если там есть незаконченные фичи?

    bingo347
    @bingo347
    Crazy on performance...
    Фича ветки делаем только от актуального main.
    Для проверки мержим фича-ветку в dev, но не удаляем.
    Когда одна или несколько фичей проверены и готовы, то делаем от main релизную ветку и мержим туда все готовые фичи, прогоняем тесты и если всё ок, то мержим релизную вету в main.
    Ну и полезно мержить main в фича ветки, когда main обновился.
    Ответ написан
    Комментировать
  • В чём принципиальное отличие Eager/Explicit Loading от прямого использования Join-ов через LINQ в контексте EF Core?

    AshBlade
    @AshBlade Куратор тега C#
    Просто хочу быть счастливым
    То что ты описал - разные понятия.

    Например, у тебя есть one-to-many и это представляется списком (ICollection).
    class User
    {
         public string Name { get; set; }
         public ICollection<Subscription> Subscriptions { get; set; }
    }


    Eager/Explicit/Lazy Loading

    Это КОГДА ты данные будешь получать.

    Тогда действия будут следующими:
    - Eager - не важно нужны тебе эти данные или нет - они все равно будут загружены. Тут ты сразу получишь все подписки (Subscriptions) даже если тебе просто нужно узнать Name
    - Lazy - они будут загружены, только когда обратишься к этому полю, т.е. в момент обращения к полю Subscriptions
    - Explicit - это стратегия когда ты сначала подгружаешь объекты в DbContext, а потом (в будущем) когда понадобятся загрузить из памяти - без сетевых запросов. Это уже про метод Load() у DbContext.

    Select/SelectMany/GroupMany

    Это ЧТО ты хочешь получить

    Пример все тот же:
    - Select - например, тебе нужно получить только имена, тогда ты создаешь анонимные объекты:
    context.Users.Select(u => new { u.Name });
    - SelectMany - тебе нужен только список подписок всех пользователей из списка
    context.Users.Where(u => someIds.Contains(u.Id)).SelectMany(u => u.Subscriptions); // Не уверен что запрос корректный

    - GroupBy - это уже JOIN

    Смысл ты понял - это разные зоны ответственности: КОГДА получать данные и КАКИЕ данные получать
    Ответ написан
    3 комментария
  • Как в ubuntu полностью удалить python?

    @asmelnik
    В Linux на python очень много завязано-написано.
    Вам зачем? чем он вам так не угодил?
    Может оказаться, что после полного удаления всех питонов (а их там может оказаться больше одного) система станет не юзабельна.
    Ответ написан
    7 комментариев
  • Как в телеграм-боте сделать каждому игроку отдельный баланс?

    @Everything_is_bad
    Стандартная проблема, ты не освоил основы python, а сразу полез писать ботов, а так бы знал, что минимум можно через словарь сделать отдельный баланс на каждого игрока, а максимум, что эти данные надо куда-то сохранять для восстановления после перезапуска бота.
    Ответ написан
    6 комментариев
  • Как в телеграм-боте сделать каждому игроку отдельный баланс?

    Zagir-vip
    @Zagir-vip
    Web dev, Game dev, app dev, Разработчик на Python!
    ладно помогу тебе малой!

    создаёшь словарь глобальный points = dict()
    В проверке if ... == "Воркать": вставляешь код:
    user_id = message.from_user.id # получаем ID отправителя.
    if points.get(user_id, False): # Обращаемся к глобальному словарю points и проверяем на наличие пользователя.
       points[user_id] = 0 # пользователь не найден поэтому добавим его.
    points[user_id] += ran # Пользователь уже точно добавлен, а значит добавляет деньги.
    
    # получаем кол-во денег у пользователя с помощью:
    cash = points.get(user_id, None) # Получаем пользователя, если нету то вернём None


    P.S: Пожалуйста, назови бота: "Слово разраба. Бот на асфальте." или добавь меня в разрабы ) У тебя очень крутой бот.
    Ответ написан
    3 комментария
  • Как вычленить из текста ФИО на python, при том что конкретных шаблонов нет?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    В общем случае эта задача не решается на 100% по определению.
    Вы говорите, что вокруг фамилий у вас произвольный текст, а это значит, что среди этого текста попадаются слова, которые чем-то похожи на ФИО, но не ФИО, или имя отчество, без фамилии, или что-то вроде "светкин василёк Игоревич". Можно это считать таким экзотическим ФИО, или отчество тут просто отдельно стоит и искать его не надо?
    В любом случае схема решения примерно такая. Если у вас есть знаки препинания, то можно разбить по ним фрагменты текста, ФИО не разделяется знаками препинания (кроме дефиса), но дефис отличается от тире пробелами по бокам.
    Далее у вас есть цепочки слов. Если в цепочке N слов, то в ней, можно сказать, N-2 кандидата на ФИО.
    Каждая трока-кандидат на ФИО может быть проклассифицирована по ряду признаков, свидетельствующих в пользу того, является ли эта тройка ФИО. Осталось только определить набор признаков и веса этих признаков. Каждый признак определяет два показателя: 1) насколько этот признак добавляет шансов тройке быть ФИО; 2) на сколько несовпадение по этому признаку отнимает шансов быть ФИО. Показатели определяются от нуля до 1 и перемножаются. Подбор признаков и их показателей будет настройкой вашего классификатора.
    Тут дальше можно двигаться разными путями.
    Часть детектов вы сможете надёжно определять по окончанию отчества.
    Часть признаков у вас будут словарными словами, которые, по вашему, не могут быть именем и\или фамилией.
    На этом этапе уже будет довольно хорошая детекция. Вопрос что вам важнее, отсутствие false positive, или отсутствие false negative.
    Так же по-разному может повезти с входными данными. Если у вас много "ловушек" в виде разбросанных по тексту бесхозных отчеств, если у вас много очень странных имён... в общем тут вам никто не выдаст идеальное решение. При отсутствии четкого ТЗ результатом будет расплывчатое ХЗ.
    В целом обычно на настройку таких классификаторов под текст на первое время сажают людей. У нас сейчас есть ChatGPT и ему, думаю, вполне можно скидывать наборы имён, чтобы он вычеркивал те, которые вряд ли именами являются. Если вы приняли, что какое-то слово не может являться именем, или фамилией, то такое решение хорошо бы кэшировать, а затем для консистентности придерживаться аналогичного в других случаях.

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

    Если коммит уже сделали, то делайте cherry-pick в нужную ветку
    https://git-scm.com/docs/git-cherry-pick

    Если коммит еще не сделали, то сделайте stash изменений, переключитесь на нужную ветку и примените то, что положили в stash
    https://git-scm.com/docs/git-stash
    Ответ написан
    5 комментариев
  • В чем может быть проблема?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Должен вернуть одну строку с id 10 (последняя строка в выборке на скриншоте)
    Кому должен? Программа должна делать только то, что вы в ней написали. Строки по колонке mentions отсортированы, десятая строка выбрана. То, что нет других правил сортировки означает, что строки с одинаковым значением mentions можно выдавать в любом порядке.
    Ответ написан
    Комментировать
  • Микроразметка Schema org, что можно указать в поле price?

    yarkov
    @yarkov
    Помог ответ? Отметь решением.
    Никак. Это вам наказание за политику компании ))
    За "цена по запросу," "ответила в личку" и прочий бред.
    Ответ написан
    Комментировать
  • Что лучше для опроса статусов платежей, крон задача или отложенные сообщения через rabbitmq сервер?

    myks92
    @myks92
    Нашёл решение — пометь вопрос ответом!
    Ни тот и ни другой. Переходите на Message Driven архитектуру. Вместо того, чтобы делать постоянные запросы кроном к сервису лучше сделайте публикацию события в RabbitMQ.

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

    При работе с RabbitMQ нужно помнить:
    1. Он гарантирует как минимум 1 раз доставить ваше сообщение. Это значит, что вполне может быть дубль и вам нужно быть готовым к этому. То есть делать идемпотентный консьюмер.
    2. Сообщение может быть не доставлено по причине недоступности сервиса очередей, так же и сообщение может быть потеряно, в том числе из-за недоступности сервиса. Поэтому вам нужно гарантировать доставку через Outbox.
    Ответ написан
    Комментировать
  • Как заставить php скрипт корректно работать?

    @grek_cheburek
    Программист самоучка
    Использовать функцию mb_substr и в ней указать кодировку для японских символов.
    Ответ написан
    1 комментарий
  • Как написать атрибут 'name' в данном случае?

    @risejs
    <form>
        <input name="image[0][url]">
        <input name="image[0][id]">
    
        <input name="image[1][url]">
        <input name="image[1][id]">
    
        <input name="image[2][url]">
        <input name="image[2][id]">
    </form>
    Ответ написан
    Комментировать
  • Как переписать код c jquery на js?

    delphinpro
    @delphinpro Куратор тега JavaScript
    frontend developer
    Ответ написан
    Комментировать
  • Как на сайте показывать псевдо-3д?

    @its2easyy
    часто просили клиенты, поэтому оформил это в библиотеку.
    https://github.com/its2easy/animate-images

    Хотя если не нужна интерактивность то проще зацикленное видео использовать
    Ответ написан
    Комментировать