Задать вопрос
  • Правильно ли я понимаю смысл статических и не статических объектов (this self)?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    1. $this указывает на текущий экземпляр класса, в контексте которого был вызван метод. Но доступ к нестатическим свойствам и методам возможен для любого экземпляра (к публичным из любого контекста, к приватным и защищённым изнутри класса).
    2. self используется для доступа к классу, в котором описан метод, static для доступа к классу, в котором вызван метод, parent для доступа к родительскому классу.
    4. В нестатических классах C# не запрещено создавать статические методы. Если эти статические методы в классе нужны, то ничто не мешает их создать.
    Ответ написан
    Комментировать
  • Как практиковать ООП?

    AgentSmith
    @AgentSmith
    Это мой правильный ответ на твой вопрос
    Только опыт и практика.
    Пиши как можно больше.
    Со временем будешь понимать, что год назад ты писал плохо и можно переписать намного лучше с применением ООП и шаблонов проектирования, которые освоил.
    Других советов нет.
    Никаких курсов и уроков.
    Ответ написан
    1 комментарий
  • Каким методом кто пользуется для интеграции pdf на сайт?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Лучше всего, когда документ не встроен в сайт, а открывается в отдельной вкладке при переходе по ссылке. То есть достаточно просто ссылки на pdf-файл. Тогда он и крупный, и адаптивный. В общем, плюсы такой интеграции очевидны.
    Ответ написан
    Комментировать
  • Как оформить список C++?

    vt4a2h
    @vt4a2h Куратор тега C++
    Senior software engineer (C++/Qt/boost)
    Тут есть несколько фундаментальных ошибок.

    С++ -- это не C.
    Не стоить пользоваться массивами в стиле char nameF[10]. Для этого есть std::string. Для других типов можно использоватьstd::vector или std::array.
    То же самое и касательно printf/scanf. В C++ боле каноничным будет использование std::cout, std::cin.

    Не нужно записывать строковое представление в массив.
    Храните массив структур. При необходимости, распечатывайте в цикле.

    Пользуйтесь манипуляторами.
    В C++ можно подключить заголовочный файл iomanip. В нём есть манипулятор setw. Его использование поможет вам сделать таблицу с ровными краями. Есть ещё, например setprecision, если необходимо регулировать точность выводимых значений.

    PS
    Документацию по всему описанному выше можно найти на cppreference.com
    Ответ написан
    Комментировать
  • Можно ли без высшего образования работать в Геймдеве?

    @MarkusD
    все время мелю чепуху :)
    Без вышки работать можно не только в геймдеве. Вообще везде можно работать. Это иногда даже негласно приветствуется.
    За такую работу можно даже получать некоторые деньги, которых будет хватать на жизнь.

    Я работал с несколькими самородками. Эти ребята - реальные спецы своего дела. Вышка им бы только мешала в их работе, оттягивая на себя их реально ценное время. Они многого добились и продолжают добиваться. Это такие немного особые люди. А для всех остальных людей без образования будут мои следующие строки.

    Никакой более-менее серьезной должности, зарплаты или даже роли без высшего образования ждать не стоит. Не продвинут, не зачтут, не посчитают нужным. Потому что всегда есть более квалифицированный и подготовленный человек для этого. И лишь только ради открытия этих перспектив идти учиться в ВУЗ тоже не стоит потому что учебу в ВУЗе понимать нужно правильно.

    Оттарабанить 4-6 лет, вытягивая лямку нормативов на экзаменах без четкого понимания требований к тебе - это пустить деньги и время на ветер.
    В ВУЗ нужно идти за обучением самоконтролю, за обучением самодисциплине, за обучением самоорганизации. Вот те самые навыки, которые сегодня дает ВУЗ. Диплом магистра, бакалавра или специалиста - это дополнительный бонус. Разовьешь эти навыки самостоятельно - станешь одним из точно таких же самородков.
    В ВУЗ стоит идти за трамплином к знаниям. Чаще всего человека надо только подтолкнуть чтобы он стал специалистом. А толчком таким и является программа базового обучения в ВУЗе. Обучение базовое потому что его для последующей работы все равно хватать не будет. Дальше с этого трамплина нужно рвать во весь опор, находя и усваивая самые важные и самые нужные для своей работы знания. Осилишь найти все эти знания сам - ну чтож, ты один из немногих способных.
    По окончании ВУЗа человек не выпускается готовым к работе. На этом этапе он обладает только самыми базовыми навыками и дальше нужно продолжать учиться по профилю работы. Для этого есть стажировки, квалификационные курсы, а так же разнообразные книги и циклы статей для самостоятельного обучения.
    ВУЗы не готовят людей к работе, ВУЗы готовят людей к самостоятельной профессиональной подготовке.

    Люди без вышки спокойно работают в геймдеве рядовым персоналом десятки лет без шанса и желания повышения. Деньги идут, работа делается, проблем нет. Кое-где я таких людей наблюдал целыми отделами. Прекрасно работают, их все устраивает. Некоторым людям не нужны перспективы карьеры или роста, это нормально. А значит, таким людям и вышка тоже не сильно нужна.
    Ответ написан
    1 комментарий
  • Как через аргумент функции, передать 'число' с ведущим нулём?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега PHP
    число 0755, волшебным образом, превращается в 493
    Никаким не волшебным, а самым обычным и описанным в документации.

    Обратите внимание, что аргумент permissions необходимо задавать в виде восьмеричного числа (первой цифрой должен быть ноль).
    https://www.php.net/manual/ru/function.mkdir.php
    Ответ написан
  • Почему системник портит жесткие диски?

    @mkone112
    Начинающий питонист.
    Была мысль заменить БП, но судя по всему проблема не в нём.

    Ты должен был с этого начать.
    UPD. Пардон, не увидел что у тебя
    БП ExeGate ATX-400NPXE 400W

    Перефразирую: поставь наконец блок питания.
    Ответ написан
    7 комментариев
  • Как написать приложение на c++?

    @antares4045
    если вам нужно чистое c++, то любая os предоставляет api: просто вбиваете в поисковик что-то вроде
    "c++ windows create window" и получаете пачку ссылок на официальные мануалы и популистические статьи.

    но это на самом деле путь в бездну. от себя могу порекомендовать фреймворк qt (он кроссплатформенный и его интерфейсы гораздо более соответствуют языку c++ (интерфейсы OS слииишком сишные))

    а иконка на рабочем столе -- это просто специальный файл, говорящий выполнить определённую команду (как правило -- запуск экзешника) можете поэкспериментировать и руками посоздавать иконки на рабочем столе к вашим консольным играм.
    Если же вас интересует, как сделать установщик -- то именно такие слова и рекомендую вбить в поисковик.
    Я для своих плюсовых проектов обычно использую InnoSetup.
    Ответ написан
    Комментировать
  • Можно ли хранить массивы в MySQL?

    ddv88
    @ddv88
    Binance Futures
    Есть вариант хранить как строку "1,2,3,4"

    JSON

    мне надо 100 записей в бд для 10 id'шников

    И что? В чем проблема?

    как-то не правильно это все

    Читаем https://habr.com/ru/post/64524/
    Ответ написан
    Комментировать
  • Почему AnyDesk не работает без монитора?

    gbg
    @gbg Куратор тега Windows
    Любые ответы на любые вопросы
    Потому что все ПО, что не RDP, на самом деле занимается съемкой скриншотов, которые хост рисует на видеокерте. Без монитора карта начинает лениться и ничего не рисует.

    RDP, в отличие от всех остальных, запускает виртуальную сессию и рисует в ней. Поэтому для RDP монитор не нужен.

    Решение банально - купите эмулятор монитора 71sq83wlclL._AC_SS450_.jpg
    Ответ написан
    3 комментария
  • Какая разница на практике между clang и gcc?

    @MarkusD Куратор тега C++
    все время мелю чепуху :)
    Однажды я на подобный вопрос уже отвечал, правда там вопрос был о кроссплатформенности, а не о трансляторах.

    Какая разница между clang и GCC.
    Разница большая. GCC обладает обширной поддержкой наследия идиом и конструкций из языка C, которые, вынужденно или по своей воле, поддерживает в современном C++.
    VLA, тип по умолчанию, всевозможные изыски синтаксиса C. Это все GCC не глядя принимает за C++ код и позволяет трансляцию.
    GCC даже сегодня многократно нарушает стандарты C++ просто потому что выбрал стратегию поддержки экзотической функциональности C в коде C++. Так же GCC не хвастается и скоростью поддержки стандартов C++.
    В 2016 году Google полностью отказались от поддержки GCC в Android NDK из-за слишком плохой поддержки стандартов и слишком свободного следования стандартам C++. В этот момент GCC стал неконкурентоспособным относительно оставшихся двух самых широко используемых трансляторов.
    Clang же, наоборот, сегодня считается, буквально, бастионом идеального следования стандартам C++. Clang точно поддерживает стандарты во всех деталях, максимально быстро интегрирует изменения и добавления стандартов, позволяет в самых первых рядах поиграться с функциональностью из драфтов следующего стандарта C++.
    Clang обладает обширной системой статической и динамической проверки кода: богатый статический анализ, возможность подключения санитайзеров, поддержка C++ Core Guidelines, очень качественные отчеты об ошибках трансляции, хорошая скорость трансляции.
    Это все ставит clang в предпочтение перед GCC на третьих для GCC платформах.

    О полной совместимости между трансляторами.
    Полная совместимость между трансляторами есть. Иначе я бы не мог делать то, что я делаю. А дело мое заключается в создании полностью кроссплатформенного кода, который однозначно собирается на всех целевых платформах и на всех них выполняется так же однозначно.
    Полная совместимость между трансляторами заключается в строгом соответствии кода выбранному стандарту C++. Всё, точка. На этом к трансляторам требования заканчиваются.
    Только тут есть небольшая проблема. Каждый транслятор по-своему поддерживает стандарт и по-своему реализует неоговоренные стандартом механики. Каждый транслятор имеет свои ошибки трансляции. И вскрывается это все именно в процессе работы над кроссплатформенным кодом.

    Я в своей работе видел многое. Я видел как при смене GCC на clang люди хватались за голову и отказывались от последнего просто потому что он нашел горы нарушений стандарта, которые молча принимал GCC. Я видел как группа из 5 человек 3 месяца рефакторила код при переходе с MSVS2015 на MSVS2017 (т.е. просто при смене версии транслятора) просто потому что разработчики из рук вон плохо знают используемый ими стандарт C++.
    Я видел ошибки в clang, приводящие к неверной генерации кода. Я видел ошибки в GCC, не позволяющие использовать его для кроссплатформенной сборки. Я видел ошибки в MSCL, в результате которых последний явно нарушает стандарт, а команда его разработки отказывается это исправлять потому что "иди нафиг".

    И, тем не менее, конкретно у меня есть возможность писать код ровно один раз и собирать его на 5 совершенно разных целевых платформ совершенно разными трансляторами, на которых этот код работает абсолютно равнозначно. Просто потому что я знаю стандарт и то, как этот стандарт поддерживают выбранные мной трансляторы.
    Ответ написан
    3 комментария
  • Не могу определиться с выбором практических задач по программированию. Какие выбрать?

    @DmitrySolomennikov
    Как мне представляется, вы пытаетесь переложить на сообщество необходимость учиться.

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

    Если же времени у вас больше и есть желание делать полноценный список задач по указанным темам, да в рамках курса, тогда на каждую из тем надо потратить силы.
    После самостоятельного освоения материалов по этим темам, да с решениями, вопрос отпадет сам собой - вы просто запишете перечень решенных задач.

    А пока это выглядит как попытка отмахнуться от обучения.
    Ответ написан
    Комментировать
  • Как настроить роутинг в index.php?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега PHP
    /index.php?url=$1

    $_GET['route']

    Если вы что-то положили в левый карман штанов, бесполезно пытаться достать это из правого.
    Ответ написан
    1 комментарий
  • После перевода Битрикса на крон, появилась ошибка php?

    SagePtr
    @SagePtr
    Еда - это святое
    Похоже, вы скормили бинарник PHP интерпретатору PHP.
    Ответ написан
    Комментировать
  • Как посчитать разницу между датами без года в PHP?

    @Vitsliputsli
    А как вы собираетесь считать дни между датами, без указания года? Или вы забыли, что есть високосные года?
    Укажите текущий год для дня рождения, и сравните с текущей датой. Если результат отрицательный, то берите следующий год для дня рождения.
    Ответ написан
    Комментировать
  • Как удалить лишние файлы в linux?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    создадим тестовую площадку:
    mkdir -p /tmp/TEST && touch "/tmp/TEST/backup-name-back-"{01..05}"-название_на_русском,_могут,_встречаться_(скобки,_точки,_запятые.)-"{10..13}-{100..104}".bak" && tree /tmp/TEST

    вывод tree
    /tmp/TEST
    ├── backup-name-back-01-название_на_русском,_могут,_встречаться_(скобки,_точки,_запятые.)-10-100.bak
    ├── backup-name-back-01-название_на_русском,_могут,_встречаться_(скобки,_точки,_запятые.)-10-101.bak
    ├── backup-name-back-01-название_на_русском,_могут,_встречаться_(скобки,_точки,_запятые.)-10-102.bak
    ├── backup-name-back-01-название_на_русском,_могут,_встречаться_(скобки,_точки,_запятые.)-10-103.bak
    ├── backup-name-back-01-название_на_русском,_могут,_встречаться_(скобки,_точки,_запятые.)-10-104.bak
    ├── backup-name-back-01-название_на_русском,_могут,_встречаться_(скобки,_точки,_запятые.)-11-100.bak
    ├── backup-name-back-01-название_на_русском,_могут,_встречаться_(скобки,_точки,_запятые.)-11-101.bak
    ├── backup-name-back-01-название_на_русском,_могут,_встречаться_(скобки,_точки,_запятые.)-11-102.bak
    ├── backup-name-back-01-название_на_русском,_могут,_встречаться_(скобки,_точки,_запятые.)-11-103.bak
    ├── backup-name-back-01-название_на_русском,_могут,_встречаться_(скобки,_точки,_запятые.)-11-104.bak
    ├── backup-name-back-01-название_на_русском,_могут,_встречаться_(скобки,_точки,_запятые.)-12-100.bak
    ├── backup-name-back-01-название_на_русском,_могут,_встречаться_(скобки,_точки,_запятые.)-12-101.bak
    ├── backup-name-back-01-название_на_русском,_могут,_встречаться_(скобки,_точки,_запятые.)-12-102.bak
    ├── backup-name-back-01-название_на_русском,_могут,_встречаться_(скобки,_точки,_запятые.)-12-103.bak
    ├── backup-name-back-01-название_на_русском,_могут,_встречаться_(скобки,_точки,_запятые.)-12-104.bak
    ├── backup-name-back-01-название_на_русском,_могут,_встречаться_(скобки,_точки,_запятые.)-13-100.bak
    ├── backup-name-back-01-название_на_русском,_могут,_встречаться_(скобки,_точки,_запятые.)-13-101.bak
    ├── backup-name-back-01-название_на_русском,_могут,_встречаться_(скобки,_точки,_запятые.)-13-102.bak
    ├── backup-name-back-01-название_на_русском,_могут,_встречаться_(скобки,_точки,_запятые.)-13-103.bak
    ├── backup-name-back-01-название_на_русском,_могут,_встречаться_(скобки,_точки,_запятые.)-13-104.bak
    ├── backup-name-back-02-название_на_русском,_могут,_встречаться_(скобки,_точки,_запятые.)-10-100.bak
    ...
    ├── backup-name-back-05-название_на_русском,_могут,_встречаться_(скобки,_точки,_запятые.)-13-102.bak
    ├── backup-name-back-05-название_на_русском,_могут,_встречаться_(скобки,_точки,_запятые.)-13-103.bak
    └── backup-name-back-05-название_на_русском,_могут,_встречаться_(скобки,_точки,_запятые.)-13-104.bak
    
    0 directories, 100 files

    получим 100 файлов бэкапа

    теперь несколько однострочников
    прописываем полный путь к папке где хранятся бэкапы и заодно закинем список для сравнения в переменную Т
    DIR="/tmp/TEST"; T=$(ls $DIR/* |awk -F'[-.]' '{print $4" "$(NF-2)$(NF-1)";"$0}')

    показать что останется после удаления
    echo "$T" |sort -nr |sort -un |awk -F';' '{print $2}'

    показать что удалиться
    comm -3 <(echo "$T" |sort -n) <(echo "$T" |sort -nr |sort -un) |awk -F';' '{print $2}'

    !!! удаляем !!!
    rm $(comm -3 <(echo "$T" |sort -n) <(echo "$T" |sort -nr |sort -un) |awk -F';' '{print $2}')

    по итогу получим:
    $ tree /tmp/TEST
    /tmp/TEST
    ├── backup-name-back-01-название_на_русском,_могут,_встречаться_(скобки,_точки,_запятые.)-13-104.bak
    ├── backup-name-back-02-название_на_русском,_могут,_встречаться_(скобки,_точки,_запятые.)-13-104.bak
    ├── backup-name-back-03-название_на_русском,_могут,_встречаться_(скобки,_точки,_запятые.)-13-104.bak
    ├── backup-name-back-04-название_на_русском,_могут,_встречаться_(скобки,_точки,_запятые.)-13-104.bak
    └── backup-name-back-05-название_на_русском,_могут,_встречаться_(скобки,_точки,_запятые.)-13-104.bak
    
    0 directories, 5 files
    Ответ написан
    1 комментарий
  • На чем лучше создать такой сайт?

    ev_g
    @ev_g
    Web dev.
    Wordpress. 1 день работы. Подрядчиков огромное количество.
    Ответ написан
    Комментировать
  • На чем лучше создать такой сайт?

    ThunderCat
    @ThunderCat Куратор тега Веб-разработка
    {PHP, MySql, HTML, JS, CSS} developer
    Для такой задачи вообще не принципиально. В данном случае технические характеристики никакой роли не играют, так как функционала по сути нет. Берите любую цмс, по предпочтениям можно определиться только поработав с ними. Если есть опыт работы с какой-то конкретной цмс - берите ее, на качестве конечного результата это никак не скажется (по теореме Эскобара). Разве что если вы найдете готовый подходящий шаблон под конкретную цмс, есть смысл уже с ней тогда работать.
    Ответ написан
    4 комментария
  • Почему сервер не даёт получить file_get_contents() с самого себя?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    0) нахрена, а главное - зачем тянуть внутренние файлы через веб? документ_рут + вашфайл.тхт его замечательно откроют
    1) Скорее всего на хосте стоит файервол и маршрутизация, настроенные на исключение циклических линков внутрь сайта (что нормально).
    Ответ написан
    1 комментарий