Задать вопрос
  • У меня есть let x = 10 let y = "+" let w = 10, как мне их сложить?

    @DEMOS-OK
    Fullstack Web Developer \ Laravel Developer
    Можно используя функцию eval().

    console.log(eval(x + y + w));

    Но в случае, если получение действия будет происходить из пользовательского ввода, использование eval() может быть опасным.
    Тогда стоит ограничить отведенный пользователю набор действий:

    if (y === '+') {
        console.log(x + w);
    }
    Ответ написан
    Комментировать
  • Как реализовать рассылку смс?

    Adamos
    @Adamos
    По моему опыту, API для пополнения счета вам все равно не поможет.
    Опсосы (а конкретно - МТС и Мегафон) теперь для дозволения любой, хоть технической, рассылки в своих сетях требуют предоставить им гарантийное письмо от того, кто эту рассылку делает, и оплатить ежемесячную дань в 2000 - 2500 за эту роскошную привилегию.
    Без этих телодвижений вы ничего на них не отправите, а делать это за своих клиентов вы не имеете права.

    Вообще, имхо, рассылка СМС просто-напросто устарела так же, как и оплата по СМС, и примерно по тем же причинам.
    Ответ написан
    Комментировать
  • Где ошибка в скрипте, устанавливающем время входа в систему в домене?

    @BeatHazard
    Вы так все усложнили...
    Назначаете вручную одному пользователю нужные вам интервалы, затем берете его как шаблон и распространяете на нужную вам группу, либо берете значение из этого шаблона и вставляете в свой скрипт
    Вот простенький скрипт, который делает то, что вам нужно:

    $templateuser='a.khramov'
    $templatehours= Get-ADUser -Identity $templateuser -properties logonHours
    Get-ADGroupmember "msk-VPN_Users" |foreach {Set-ADUSer $_.samaccountname -Replace @{logonHours = $templatehours.logonHours} }
    Ответ написан
    Комментировать
  • Метод класса вписывается в класс который осуществляет действие или в класс над которым осуществляют действие?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    Уфф, 5 раз прочитал, пока понял. Второе.

    Метод класса вписывается в класс который над которым осуществляют действие.
    Собственно, определение класса - это "данные и методы для работы с ними". С ними. А не с данными чужих объектов.

    Сущность Модератор в данном случае вообще не нужна, достаточно свойства в сущности Пользователь (кстати, откуда вы все берете этих "участников"? Участник бывает у события, а не у сущности. Вы же не говорите "участник 5А класса?")

    Связей здесь должно быть значительно меньше.
    Если модератор не упоминается ни в опросе, ни в добавленной книге, то и связи между ними никакой нет.
    В текущей схеме должна быть только одна связь: опроса с прошедшим его пользователем. Одним из свойств опроса будет экземпляр класса Пользователь. Причем это касается класса РезультатОпроса, которого нет на диаграмме. А он должен быть. И вот он будет связан с классом Опрос.

    Чего здесь не хватает - это интерфейса. Классов-контроллеров. Которые собственно эти методы и вызывают.
    Какой-нибудь BookController.add(), который принимает, скажем, два объекта, Пользователь и Инпут, и проверяет, является ли пользователь модератором. И если да, то создает объект Book, и используя данные из инпута, вызывает Book.add()
    И то же самое с опросами

    Еще по-хорошему должен быть BookRepository. Потому что если книга умеет сама себя добавлять в хранилище, то это считается плохим тоном. Должен быть отдельный объект Хранилище Книг, в котором и будут методы добавления и поиска.
    Ответ написан
    6 комментариев
  • Контейнер с приложением на PHP в docker завершает свою работу, как исправить?

    SignFinder
    @SignFinder
    Wintel\Unix Engineer\DevOps
    Если контейнер на основе ubuntu, там должен быть шелл и возможность установить нативный модуль mod_php для Apache.
    А для работы php в отдельном контейнере с Apache - нужен php-fpm.
    Ответ написан
    Комментировать
  • Какие книги либо материалы можно использовать для изучения фреймворка aiogram?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    aiogram - это маленький и примитивный фреймворк сам по себе. Для его изучения достаточно прочесть документацию. Но до этого надо изучить Python, asyncio, принципы работы сетей в целом и протокола http в частности, желательно базы данных, чтобы хранить состояние, алгоритмы, вроде конечного автомата, чтобы управлять состоянием, совсем хорошо ещë и понимать Linux, ведь на каком-то сервере вашему ПО надо будет работать.
    Ответ написан
    Комментировать
  • Как сделать вывод части информации в консоль после ввода команды?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    пользоваться пагинатором more или текстовым просмотрщиком less
    ip a | more
    ip a | less

    или фильтровать нужные строки через какой-нить grep
    Ответ написан
    Комментировать
  • Как сделать вывод части информации в консоль после ввода команды?

    paran0id
    @paran0id Куратор тега Linux
    Умный, но ленивый
    Перенаправить в less:
    ip a | less
    Ответ написан
    Комментировать
  • Nginx. Как он конфигурируется?

    @SunTechnik
    ngingx смотрит файл /etc/nginx/nginx.conf ; или другой, заданный через ключ -c.
    В конфиге может быть строка вида:
    include /etc/nginx/conf.d/*.conf
    (добавить в конфиг все файлы оканчивающиеся на conf из каталога: /etc/nginx/conf.d

    По аналогии можно включать и другие конфиги.
    Ответ написан
    4 комментария
  • Почему PHP не исполняется построчно, хотя он интерпретируемый?

    YBB
    @YBB
    Если код вводить в консольном режиме (php -a), то будет обрабатываться построчно, как и положено классическому интерпретатору. Но для работы с http к php прикручен прекомпилятор в байт-код и OPcache - всё ради эффективности.
    Ответ написан
    Комментировать
  • Как сделать, что клиенту прилетал актуальный PDF-файл?

    Adamos
    @Adamos
    Выставить настройки кэша в заголовках ответа, отдающего файл.
    Для особо упертых браузеров, которые могут класть на эти заголовки (вроде Хрома) - отдавать файл каждый раз по другой ссылке (добавив ?ver=mtime, например).
    Ответ написан
    1 комментарий
  • Как в ЧПУ Битрикс установить #SECTION_CODE# корневого раздела на не последнего?

    через настройки никак, только ручками программировать
    Ответ написан
    Комментировать
  • Как правильно реализовать меню?

    Adamos
    @Adamos
    По-битриксовски - положить его в sect_inc.php в той папке, которая объединяет эти 8 страниц.
    Ответ написан
    Комментировать
  • Как почистить папку с 246к папок по ssh?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Можно использовать xargs, он сам поделит список аргументов, переданных через stdin, на такие блоки, чтобы они вписывались в лимит. Чтобы не было спецэффектов от всяких особых символов, можно использовать find -print0 | xargs -0 (символ с кодом 0 будет разделять имена файлов вместо стандартного переноса строки):

    find условия -print0|xargs -0 rm -rf

    Однако GNU find сам умеет удалять файлы с помощью -delete:

    find условия -delete

    Ещё может быть проблема, что подобная операция помешает работе сайтов из-за нагрузки на диск, это можно решить с помощью приоритетов для процессов (nice) и ввода-вывода (ionice), тогда удаление будет по возможности выполняться в фоне:

    nice -n19 ionice -c3 команда

    (Если используется find|xargs, то это нужно передать xargs)
    Ответ написан
    Комментировать
  • Как лучше хранить журнал в долгосрочной перспективе?

    BumblingBee
    @BumblingBee
    Во всем по немногу диванный эксперт
    Лучше всего использовать для хранения логов отдельную БД,предназначенную для этих целей, иначе вы рискнуете очень быстро получить ситуцию, когда таблица с логами будет занимать больше места на диске, чем все остальные таблицы с бизнес данными, вместе взятые. Это неминуемо приведет к проблемам с администрированием такой базы, бэкапы станут больше по размеру, будут делаться дольше и т.д.

    В качестве БД для логов лучше всего использовать Click House - базу от Яндекс. Она отлично для этих целей подходит и невероятно хорошо сжимает данные, т.е. помимо всего прочего, еще и на диске эти данные будут не много места занимать. Также вы можете с Click House настроить полтики хранения данных, например указать что данные в таблице лога должны храниться 5 лет, и CH будет сам их чистить.

    Нужно также учесть, что если вы хотите сделать хранение лога транзакционным, т.е. гарантировать, что не будет ситуации, когда у вас бизнес данные поменялись, а при запили в лог упала ошибка, и данные не были залогированы, то нужно вести запись в CH в два этапа. Нужно продублировать таблицу для ведения лога в вашей транзакционной БД, и писать в нее информацию о действиях пользователей в одной транзакции с изменением бизнес данных. Далее нужно реализовать джобу, которая в фоне например по расписанию, или иным образом, будет скидывать данные из лог таблицы в транзакционной БД в таблицу ClickHouse, затем удалять данные в лог таблице транзакцонной БД, только после их успешного переноса в CH. Таким образом таблица с логами в транзакционной БД всегда будет маленького размера.

    См. также паттерн Transactional Outbox
    Ответ написан
    Комментировать
  • Как исправить ошибку при git push?

    Stalker_RED
    @Stalker_RED
    HTTP Error 413 - Content Too Large

    Это не у гита косяк, а у вашего вебсервера у которого лимит на размер заливаемых файлов.
    Настройте параметр client_max_body_size в nginx, или LimitRequestBody если у вас apache.
    (не забудьте перезапустить вебсервер или перечитать конфиг на горячую).

    Либо переключите git с https на SSH, тогда вебсервер не повлияет.
    Ответ написан
    1 комментарий
  • Как правильно соединить при выдаче 2-3+ разных таблиц с одинаковой структурой в единую выборку?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Обычно UNION автоматически делает distinct для всех таблиц-участников процесса union.
    Это является причиной замедления.

    Используй UNION ALL.
    Ответ написан
    3 комментария
  • Как произвести изменения в детальной карточки товара?

    У вас два пути:
    1. Изучить Битрикс (и веб-разработку в целом).
    2. Заплатить профессионалам, которые уже всё это знают.

    По картинке диагностировать проблему мы не можем и объяснять вам направление для решения задачи (выяснить через DevTools что именно создаёт "пустоты" и дальше редактировать либо шаблон компонента, либо стили шаблона сайта), судя по содержанию вопроса, тоже бесполезно.
    Ответ написан
    6 комментариев
  • Как отправлять проект заказчику?

    AlexNest
    @AlexNest
    Работаю с Python/Django
    Очевидно, что человек хочет получить готовый продукт.
    Если это программа, предназначенная для работы локально на пк заказчика
    Например

    - Скрипт, подключающийся к базе Access со списком клиентов и генерирующий pdf-документы на основе выборки данных.
    Формочка на pyqt5/другом граф.фреймворке, выполняющая какие-то действия

    То стоит скинуть заказчику код удобным ему способом, подробно описав какие шаги нужно совершить, чтобы программа запустилась.
    В случае, если программа должна крутиться на сервере (бот/сайт/что угодно), то можете установить ее на этот сервер. Разумеется, развертывание приложения - тоже работа, которая должна быть оплачена.
    Главное - заранее максимально четко обсудить подробности, чтобы потом не было недопониманий.
    Ответ написан
    Комментировать
  • Nginx разные имена файлов на одном сервере для разных доменов, отдача статики?

    TheCreator
    @TheCreator
    Бездельник
    А что мешает вам запустить один раз скрипт, который создаст симлинки на все сеошные файлы? Зачем мучать nginx?
    Ответ написан
    1 комментарий