Задать вопрос
  • В чем можно симулировать воздушные потоки?

    @rPman
    Дорогие многофункциональные решения
    SolidWorks simulations package
    ANSYS Fluent
    COMSOL Multiphysics
    Simcenter STAR-CCM+ CFD
    ...


    Из открытых и бесплатных:
    OpenFOAM
    CFDTool на основе FEATool (кажется форк), Tecplot
    Blender (не уверен что это адекватный инструмент)
    Ответ написан
    Комментировать
  • Как контролировать комплектацию рабочего места?

    anthtml
    @anthtml
    Системный администратор программист радиолюбитель
    Классическое GLPI + FusionInverter или что-то подобное
    Но задача больше административная - пломбировка системников, написание политик, инструкций и роспись сотрудников в карточках оборудования - это если уж совсем заморачиваться.
    Хотя в большинстве случаев достаточно чтобы бухи назначили МОЛ началька отдела (кабинета) и закрепили все имущество за ним, а не так что все компы в организации числятся за сисадмином
    Ответ написан
    Комментировать
  • Как сделать быстрый поиск в шифрованной системе?

    @Everything_is_bad
    Например, продолжить твое "сейчас" и на клиенте хранить индекс всех сообщений (если такое возможно). А так гугли "searchable symmetric encryption" и "полностью гомоморфное шифрование"
    Ответ написан
    1 комментарий
  • Можно ли обращаться к фасаду из класса, который этот фасад вызывает?

    Весь вопрос звучит как какой-то оверинжиниринг.
    0. Без диаграмм вообще поток мыслей сложно понять.
    1. Фасад - это не способ легализовать божественный класс.
    2. Циклические зависимости - это не всегда смертельно плохо, но всегда очень подозрительно.
    3. Не нужно накидывать все паттерны, какие ты знаешь, если только что прочитал какую-то умную книжку или статью. Иногда лучше всё-таки сделать по принципу KISS и YAGNI.

    Или мне нужно создать объект PriceConvert и вызвать нужный метод?

    Зачем на каждую мелкую операцию делать отдельный класс и создавать постоянно новые объекты?

    Просто с одной стороны фасад Payments лежит ниже чем эти классы - это просто точка доступа для контроллеров итд.

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

    и у них внутренние связи налажены через parent
    .
    Что это вообще значит?

    Payments::priceConvert

    Почему вообще платежи отвечают за конвертацию курсов валют? Или что делает priceConvert?
    Ответ написан
    8 комментариев
  • Стоит ли указывать паспортные данные в анкете соискателя?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Нет, не нормально. В нормальных местах такое отдельно и необязательно указывается.
    также его аффилированным лицам

    Попахивает продажей клиентской базы, жди спама
    Ответ написан
    7 комментариев
  • Как преобразовать вложенные словари в объекты с типами для API-обёртки?

    Wispik
    @Wispik
    можно использовать pydantic
    и потом описать модели, согласно нужным типам данных
    Ответ написан
    Комментировать
  • Как лучше устроить сервер для мессенджера?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Лучше для чего именно? Для передачи сообщение между сервером и клиентом в вебе уже давно придуманы веб-сокеты, поэтому лучше выбрать ЯП/фреймворк, где реализована адекватная поддержка данного протокола и есть библиотеки. HTTP можно, конечно, использовать - но только с костылями. Вот только, зачем? А если не веб - то можно брать любой бинарный сериализатор и сразу использовать голые сокеты (впрочем и веб-сокеты и вне веб тоже нормальное решение).
    Ответ написан
    2 комментария
  • В какую сторону учиться, QA, front end или back end для реалистичного входа?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Ок, обо всём по порядку

    IT в самом худшем положении чем когда-либо

    Да, есть такое. В первую очередь это вызвано из-за быстрорастущей сферы ИИ. Я думаю вы в курсе, что уже сейчас есть нейронки, которые могут по наброску написать страницу сайта на React, что в 1 000 раз быстрее, чем сделал это джун, и в столько же раз дешевле. Зачем тогда держать джунов? Это и есть одна из причин, по которой требования растут.

    Вторая причина, это конечно же мировой кризис, войны, пандемия так же принесла свой вклад в это.

    И третья причина, это огромный приток людей в сферу ИТ. У нас очень любят шутить: "Если ты попробовал всё и у тебя ничего не получилось в жизни, иди в IT, сюда идут все кто ничего не смог добиться". Вообще это достаточно странно, потому что программисты должны быть умными и знать очень много, тут люди могут всю жизнь учиться. Почему так случилось? Потому что пришёл тот же PHP, Python и прочее, где низки порог вхождения, и тут уже всё стаёт на свои места. Даже школьники пишут всякую дичь на PHP и очень этим гордятся.

    Со стороны работодателя, как понять, что ты принимаешь на роботу человека с опытом и мозгами в голове, а не школьника? Поднимать требования!

    Почему поднимаются ЕЩЁ требования? Потому что если очень много людей на рынке, ты можешь выставлять более высокие требования. Это природны отбор и тут нет ничего удивительного. Скоро это всё будет на уровне вундеркиндов (с вундервафлями). За год выпускается группа в универе где есть обученные студенты программирования. В такой группе может быть человек 30, на потоке 120 и больше. Таких университетов 100500. Как понять кто лучше из них, кто знает и хочет работать, а кто пошёл сюда чисто, потому что он тупой и больше никуда его не взяли?

    конкуренция адская, front-end, UX/UI дизайнеров и тестировщиков/QA -- как собак нерезаных и все профнепригодны

    Ещё одна причина по которой это всё происходит. Почему вообще IT стало очень популярное? Потому что большинство заказов на проекты были западные, соответственно, з/п в долларах это очень сладкая и желательная вещь для всех. Но теперь рынок в странах бывшего СССР очень сильно просел из-за таких вещей.

    А теперь подумайте, выгнали целый отдел программистов, мидлы, синьйоры и т.д. и сидят они без работы. Месяц, два, пол года. Мидл, который по факту стоит около 4000 долларов, за пол года без работы будет пробовать подавать заявку на вакансии джун/джун-стронг с зп 2000-3000 долларов. Почему? Потому что у него нет работы

    А как со стороны работодателей? Взять перспективного джуна по цене 1000 долларов на вакансию 2000 долларов, либо взять мидла, который стоит 4000 долларов, по платить ему 2000-3000? Конечно, тут все очевидно.

    А теперь все эти факты в совокупности дают очень большой регресс для рынка. Хочешь нормально зарабатывать? Ты должен составить конкуренцию и победить в этом среди этих 300 человек. А среди них может быть кто угодно. И при этом всё, вероятность пройти хотя бы ДО СОБЕСЕДОВАНИЯ крайне мала. Скорее всего ваш непрочитанный отзыв завернут после 3х недель ожидания и всё.

    КУДА ИДТИ И КЕМ БЫТЬ?
    Вообще в вашей ситуации, тут больше вопрос "Как?", а не "Кем?". Если вы посмотрите на статистику, то примерно все developer стеки получают одинаково на уровне senoir.

    Так же не стоит думать, что перейти из QA и Dev'ы можно вот просто так. Сейчас разработчики сами отлично умеют всё тестировать, так что тут сложно сказать что-то... Вообще QA стек используется одни инструменты, deve стек использует другие инструменты для работы, по этому тут так же не получится прыгать туда-сюда. Даже если вы будете QA и захотите перейти в dev'ы и программирования не убежишь

    А вообще я бы посоветовал заводить общение с программистами и учить, учить и ещё раз учить. Потому что тут играет ещё одно очень важное правило, что вы никому даже бесплатно не нужны, если вы приносите прибыть. Что бы приносить прибыть, не получится прийти и сказать: "Давайте я тут у вас потусуюсь, что-то учить буду, 3 строки напишу, а вы мне стакан риса". Да, так не прокатит, как бы это печально не звучало.

    Года 2 назад даже с небольшими, но уверенными знаниями программирования вас бы с руками и ногами забрали, если бы вы сказали, что вы там алгоритмы знаете, или на C++ умеет писать программы. Та вам все дороги открыты были бы
    Ответ написан
    2 комментария
  • Нормально ли использовать var вместо явной типизации в C#?

    1. Да, это нормально. Сильно легче код писать таким образом. (а иногда и читать, тк меньше слов дублируется. Например совершенно никакой ценности не несёт User user = userRepository.GetUserById(...) или многослойный женерик)

    2.

    Я ужасно ненавижу такой подход, потому что ты не можешь сразу определить тип, который возвращается.

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

    Ты же не задаёшься вопросом, какой тип возвращает какой-нибудь GetUser, ToString, TryParse, FirstOrDefault?

    Если тебе сложно понять смысл кода без типов - значит кто-то плохие имена дал переменным.


    Данный код достаточно сложно разобрать человеку, который не писал это всё с нуля, а был присоединён через 4-5 лет ведения проекта.

    Очень смелое заявление, которое мало чем подкреплено.


    Как по мне, добавление возможности писать var вместо обычного типа было ужасной ошибкой Microsoft. Сам var был добавлен в язык вместе с анонимными типами и предназначался специально для них.

    1. var далеко не только для анонимных типов полезен, хотя с анонимными типами без var работать было бы очень сложно.

    2. Тренд говорит об обратном - автоматический вывод типов сейчас есть практически во всех статически-типизированных языках в том или ином виде.

    Ну и помни ещё, что ты же не в блокноте код пишешь - у тебя есть всякие inlay hints, которые могут рядом с именем переменной показать её тип, а наведя мышку на слово - ты узнаёшь о нём все (имя переменной, сигнатуру метода, документацию, итд)
    Ответ написан
    7 комментариев
  • Нормально ли использовать var вместо явной типизации в C#?

    xez
    @xez
    TL Junior Roo
    Вполне норм. Просто тип определяется справа, а не слева.
    Подсказки ide должны решить вопрос понимания человеком, что там за тип.
    Ответ написан
    5 комментариев
  • Как дождаться выполнения асинхронного метода?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Task это асинхронная задача, ожидать выполнение которой можно с использованием async/await
    Дока
    Ответ написан
    Комментировать
  • Как запустить цикл for of для длинны массива?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Обычный цикл чем не цикл?
    const chain = async times => {
      for (let n = times; n > 0; n--) {
        console.log(`${n} starting..`);
        await new Promise(resolve => setTimeout(resolve, 800));
        console.log(`${n} ..finished`);
      }
    };
    
    chain(4).then(() => console.log('Done'));
    Ответ написан
    Комментировать
  • Как технически реализована механика кликеров?

    1. Как в приложении реализована защита от абьюза? Например, если 1 клик = 1 http запросу, то не сложно заиспользовать разного рода автоматизированные инструменты по тиму Postman, чтобы "заработать" coin-ы

    1. Ограничиваем максимум кликов в секунду, отправляем несколько кликов одним запросом. Опять же продумываем механику так, чтобы в долгосроке всякие пассивки/мини игры приносили основной доход, а не клики. Опять же ограничиваем количество кликов в день/час, например.
    2. Вместе с запросом отправляем ещё какой-нибудь уникальный код, который выдаёт система, которая работает только на фронте (invisible captcha какая-нибудь)
    3. Блокчейн для этого сценария противопоказан.
    Ответ написан
    Комментировать
  • Почему данные не сортируются по дате?

    Maksim_64
    @Maksim_64
    Data Analyst
    1. Не помешало бы, пример несколько строк из фрейма которые не сортируются.
    2. Обратно возвращать в строку не обязательно.
    3. Методы чтения имеют параметр parse_dates для того что бы строковое представление даты перводить в тип данных datetime64
    вот небольшой примерчик
    (
        pd.DataFrame({
            'string_dates':['17.08.2024','15.08.2024','20.09.2024'],
            'values':[10,100,1000]
        })
        .assign(
            dates=lambda x: pd.to_datetime(x['string_dates'],format='%d.%m.%Y')
        )
        .sort_values(by='dates')
    )
    как видишь все сортируется, обрати внимания на типы данных. Колонку которая используется для сортировки можно дропнуть, ну или создать ее что называется "на лету".
    Ответ написан
    Комментировать
  • Мессенджер, не требующий для входа номера телефона/e-mail, и не заблокированный в РФ?

    CityCat4
    @CityCat4 Куратор тега Информационная безопасность
    Дома с переломом ноги
    В Вашем вопросе два качественных определения. Чтобы на него ответить, сначала пожалуйста определите, что такое "достаточно безопасный" и что такое "без бубна".
    Оператор мессенджера по определению имеет доступ ко всей переписке (а вся трепотня про end-to-end encryption - это всего лишь трепотня - кто ее проверял-то?). Поэтому если Вас так заботит факт "нечитаемости" - подымайте свой сервак.
    Ответ написан
    3 комментария
  • CREATE USER не учитывает регистр?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Если кавычек нет, то предполагается, что без учета регистра. Грубо говоря, без кавычек - все в нижний регистр.
    В данном случае, надо добавить кавычки вокруг имени пользователя:
    CREATE USER "PolzaK" WITH PASSWORD

    Но учитывай, что тебе и дальше придется всегда указывать кавычки. В противном случае,
    ALTER USER PolzaK ...
    Тоже самое, что и
    ALTER USER polzak ...
    Ответ написан
    Комментировать
  • В какой структуре лучше хранить массивы синонимов номенклатур?

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

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

    Henryh
    @Henryh
    Веб-программист
    Попробуй посмотреть в сторону CI/CD подхода.
    Условно, это когда некий скрипт мониторит изменения, которые ты запушил в репу. И автоматически (или по кнопке) запускает процесс заливки на нужный сервер (тестовый и/или прод). Туда же можно добавить прогон тестов и сборку.

    Тоесть процесс будет например такой: локальные правки -> пуш в ветку разработки репозитория -> синк с тестовой средой -> если всё ок - пуш в мастер -> синк с продом.

    Есть много решений, можно начать с GitHub Actions
    Ответ написан
    Комментировать
  • Почему ajax выполняется по очереди?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Вангую - на бэке PHP и сессии. Причём, открываются сессии в начале скрипта, а закрываются никогда, то есть по завершении скрипта.
    Тогда пока работает скрипт, файл сессии держится открытым и второй скрипт в той же сессии будет ждать освобождения файла. Файл сессии надо освобождать как можно раньше. session_start, считали нужные данные и сразу же session_write_close. Если надо что-то изменить в сессионных данных в процессе работы скрипта, то снова открыть сессию, записать изменения, закрыть.
    Ответ написан
    Комментировать