• Как правильно читается данный запрос?

    @Akela_wolf
    Extreme Programmer
    SELECT --выбрать
      c.name as category_id, -- колонку name из c и обозначить её как category_id
      r.id, r.name, r.country_id, p.category_id -- колонки id, name, country_id из p
    FROM -- из
      " . $this->table_name . " p --какой-то таблицы, обозначая её как p
    LEFT JOIN -- соединив её слева
      category c -- с таблицей category (обозначая её как c)
    ON p.category_id = c.id -- по совпадению значений в колонках category_id и id
    WHERE -- накладывая условие
      p.id = ? -- поле id из p равно какому-то значению
    LIMIT 0,1 -- и выбрать одну (первую) запись (а сортировки-то и нет! Какую считать первой?)
    Ответ написан
    Комментировать
  • Вопросы по теории mysql?

    @Akela_wolf
    Extreme Programmer
    1. У вас такие объемы и нагрузки что это становится критичным? Даже если вы сделаете первичный ключ интом - все равно индекс (и скорее всего уникальный) по уидам вам нужно будет строить.
    2. Джойны прекрасно поддаются агрегации и сортировке. Опять же все зависит от объемов и нагрузок. Денормализация нужна там где сотни тысяч-миллионы и более записей в таблице. Вот тогда денормализация начинает играть роль в качестве средства оптимизации. Сортируемые и группируемые поля совершенно необязательно должны быть в индексе.
    Ответ написан
    3 комментария
  • Повышение прав для текущего пользователя в *nix-подобных системах?

    @Akela_wolf
    Extreme Programmer
    Непонятно какую конкретную задачу вы решаете, вопрос довольно абстрактный.
    У любого процесса есть ruid/rgid - это идентификаторы пользователя и группы, который запустил процесс и есть euid/egid - это эффективные пользователь и группа, которые определяют права доступа. Собственно sudo меняет именно euid/egid.

    Нужно понимать, что "права доступа" в *nix привязаны к uid/gid (пользователю и группе) и возможности выдать какие-то абстрактные "расширенные права" нет. Соответственно права процесса определяются его euid/egid (в простом случае - uid/gid запустившего процесс пользователя)

    Вы можете привязать некие "расширенные права" к привелегированной группе, в которой ваш пользователь не состоит и предоставить ему право запускать некоторые программы в таком режиме либо с помощью SGID флага на самой программе, либо с помощью команды sudo -g

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

    @Akela_wolf
    Extreme Programmer
    Тут все зависит от того как оформлены вы сами - физлицо, ИП, либо собственная фирма.

    Дальше все зависит от того в каком статусе вы видите продолжение сотрудничества:
    1. Наемный работник. То есть инвестор платит вам какую-то сумму "подъемных", создает под вас отдел/бюро в существующей структуре и вы приходите на зарплату развивать этот проект дальше. Тут нужно понимать, что вы полностью теряете все права на проект, то есть если вас что-то перестанет устраивать - увольняетесь, а фирма продолжает развивать эту тему уже без вас. Это, в принципе, нормальный вариант.
    2. Соучредители. Вы и инвестор создаете фирму, в которой у вас у каждого есть доля. И вы, как учредитель, имеет право на долю в прибыли, имеете влияние на принимаемые решения и т.д. Прибыль больше, но и риск тоже.
    3. Вы создаете фирму, являетесь единоличным владельцем, инвестор предоставляет вам деньги на условиях возврата в определенный срок и с какими-то условиями (по сути кредитует вашу фирму). Тут ваши права остаются полностью при вас, но согласится ли на такой вариант инвестор? Потому что тут для него не так много выгоды.

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

    P.S. Всегда внимательно читай то что подписываешь и не стесняйся уточнить и зафиксировать на бумаге какие-то условия.
    Ответ написан
    Комментировать
  • Можно ли использовать sqlite3 для публичного бота в Телеграм?

    @Akela_wolf
    Extreme Programmer
    С разными юзерами работает не БД, а ваше приложение. Если структура БД сделана правильно - разницы между SQLite и MySQL для конечного пользователя не будет.

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

    @Akela_wolf
    Extreme Programmer
    И первая же ссылка в поиске ведет на пример как это сделать
    Ответ написан
    2 комментария
  • Как заставить работать программу из курса алгоритмы в идея?

    @Akela_wolf
    Extreme Programmer
    Если хотите запустить именно через терминал, то нужно указывать параметр -cp в котором указать путь к библиотеке algs4.jar и прочим зависимостям.

    Настройки, которые в указали в IDEA работают только если вы запускаете проект средствами самой IDEA (зеленый треугольничек).
    Ответ написан
    5 комментариев
  • Как найти итоговые поступления каждого маршрута за 7 дней?

    @Akela_wolf
    Extreme Programmer
    1. Код нужно форматировать. Выкладывать такой код - неуважение к читающему его.
    2. А где у вас считается сумма? Я не вижу ни одного оператора сложения.
    count[i]=m[i]; - вот тут не должно ли быть +=?
    3. А где у вас инициализируется массив под сумму? int count[] = new int[10]; - упс... при каждой итерации цикла. Вынесите за пределы цикла и заполните его нулями.

    По идее этого достаточно чтобы ваша программа заработала как вы желаете.
    Ответ написан
  • Как доказать пользователю, что код на сервере совпадает с кодом на Github?

    @Akela_wolf
    Extreme Programmer
    Даже если вы докажете, что код в какой-то момент совпадет с тем что в гитхабе, то вам ничего не мешает в любой момент изменить его.
    Поэтому, если некий человек желает быть уверен, что на сервере выполняется именно данный код, то единственный для этого способ - запускать его на своем, полностью подконтрольном сервере.
    Ответ написан
    Комментировать
  • Ошибка при работе со Spring Security. Как ее решить?

    @Akela_wolf
    Extreme Programmer
    Я step by step повторял за ютубером "Eugene Suleimanov"

    С какой целью вы это делали?
    я понятие не имею в чем причина

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

    @Akela_wolf
    Extreme Programmer
    Серебряной пули нет. Поскольку каждый язык имеет свои особенности, то все не так просто.

    Поскольку речь о C++, то, я полагаю, речь идет о компилируемом в машинный код проекте. И тут, что в Windows, что в Linux, существуют динамически загружаемые библиотеки: dll и so. Собственно динамически загружаемая библиотека может быть написана на любом языке, важно чтобы она соответствовала некоторому ABI, которое определяет программа. Собственно это все что требуется от плагина. И такой плагин можно писать на C++, Pascal, Go, Haskell, Rust и даже ассемблере (вообще говоря на всем что поддерживается компилятором LLVM).

    С другой стороны находятся языки, компилируемые в байт-код. Такие как Java. Чтобы поддержать плагины на Java потребуется написать собственную подсистему, которая будет запускать JVM и оборачивать её в интерфейс плагина. Громоздко и медленно, на мой взгляд большого смысла не имеет. Если хочется писать плагины на Java, то и саму программу имеет смысл разрабатывать на Java. И тогда к вашим услугам весь спектр JVM-языков: Java, Scala, Kotlin, Groovy, Clojure, Jython.

    Аналогичная история с платформой .NET

    Плагины на скриптовых языках, таких как LUA - можно встроить интерпретатор прямо в программу (это для них родной путь)

    Ну и, наконец, отдельно стоят языки, которые "вещь в себе", такие как PHP, Javascript. С ними плагины вряд ли легко сделать, только если, аналогично JVM/.NET делать "обертку" над средой выполнения. Но опять же, большого смысла не имеет.
    Ответ написан
    2 комментария
  • Как ограничить доступ пользователю к чужим постам на сайте?

    @Akela_wolf
    Extreme Programmer
    Самый простой путь: в том месте где вы загружаете сущность поста из БД добавить проверку, что текущий авторизованный пользователь является автором поста.

    Авторизацию пользователя можно сделать разными способами, тут гуглить Spring Security - это все целиком про авторизацию и проверку прав доступа.

    Например, вот статья о сессиях в спринге, думаю в качестве отправной точки сгодится.
    Ответ написан
    Комментировать
  • Что можно или нужно поменять в этой сборке пк?

    @Akela_wolf
    Extreme Programmer
    Видеокарта у вас совсем не бюджетная. Но тут все зависит от того в какие игрушки предполагается резаться ребенку.

    Как вариант - взять процессор с приличной встройкой, что-нибудь уровня Ryzen 7 5700G. Это современные 8 ядер/16 потоков + встроенная видеокарта. Да, она значительно слабее чем ваша RTX3060, но для не слишком требовательных игрушек (и не на максимальных настройках) вполне подойдет. А стоит такой процессор порядка 25к, то есть экономия 50 тыс. выйдет.

    А видеокарту, при желании, можно будет потом добавить (как цены более-менее придут в норму. Для сравнения, на computeruniverse RTX 3060 сейчас стоит около 30 тыс, несравнимо с почти 70 тыс в вашей конфигурации)

    Материнскую плату можно взять и за 5-7 тысяч. Такие дорогие в первую очередь имеет смысл брать под разгон. Если разгон не предполагается тут можно сэкономить. Если собирать на Ryzen - то что-нибудь около GIGABYTE B450M DS3H V2, выходит 4 тыс.

    Оперативной памяти нормально. Но, если компьютер планируется эксплуатировать долго - то можно и 32 Гб, либо убедиться что есть свободные слоты на материнке, под будущее расширение.

    Если не ставить RTX 3060, то можно сэкономить и на блоке питания, но это уже не такие серьезные деньги. Но если планировать добавлять мощную видеокарту (уровня RTX 3060Ti и старше), то можно и 700-800 Вт блок питания взять.

    А вот на SSD я бы экономить не стал. Дешевый SSD - либо низкая скорость, либо малый ресурс (что может привести к потере данных). Поэтому лично я бы выбрал 970 EVO PLUS, которые производятся давно и доказали свою надежность. А вот HDD можно и 2Гб взять - тут все зависит от того сколько данных к которым не критичен быстрый доступ (в первую очередь документы, музыка, видео, изображения и т.п.) ожидается.

    В общем, у меня получилось что-то вот такое: https://www.dns-shop.ru/conf/49b75c49650067e4/ за 60 тыс. На то что DNS ругается о несовместимости процессора с материнкой - не обращайте внимания, я проверил по сайту гигабайт - процессор официально поддерживается этой моделью. Как и память, как и SSD (специально подбирал). Но это, повторюсь, если вы готовы обойтись без мощной видеокарты, что упирается в то какие игрушки должен тянуть компьютер. В перспективе сюда добавляется видеокарта, еще 16 или 32 Гб памяти и компьютер становится весьма мощным игровым.
    Ответ написан
    Комментировать
  • Что значит приложение в Spring?

    @Akela_wolf
    Extreme Programmer
    • В терминах операционной системы (windows), приложение = программа.
    • С точки зрения спринга, если не вдаваться глубоко в детали, это тоже самое. Приложение = программа, написанная с использованием Spring. Это может быть сайт, это может быть некий сервис, это может быть вообще консольная команда.
    • С точки зрения VK, приложение - это некий сайт (или его часть), использующий API VK. То есть дополнение к ВКонтакте


    Не совсем понятно какая у вас цель. Если добавить на своем сайте возможность создавать дополнения к нему, то есть приложения, то в первую очередь нужно определиться какие возможности этим приложениям будут доступны. А затем уже создавать API для них. Форма для приложения - это по сути обычная форма, после обработки данных из которой добавляется запись в БД вашего сайта о существовании приложения и его атрибутах (в частности токене для авторизации, чтобы вы понимали какое приложение шлет запросы вашему API).

    То есть, говоря о "приложении" нужно понимать контекст в котором это слово употребляется.
    Ответ написан
    1 комментарий
  • Как в PHP вынуть номер абонента?

    @Akela_wolf
    Extreme Programmer
    Учитывая что по структуре это ini-файл, используйте parse_ini_file или parse_ini_string
    Ответ написан
    Комментировать
  • Как сделать такое если я ни разу ничего не делал в 3д)?

    @Akela_wolf
    Extreme Programmer
    Ваша картинка не открывается. Но в целом, я бы рекомендовал посмотреть:

    Blender (бесплатна)
    Fusion 360 (есть бесплатная лицензия для хобби)
    Компас 3D (платная, есть дешевая лицензия для хобби)

    Единственное что скажу - это все не настолько просто, как кажется, любую программу придется изучить.
    Ответ написан
    Комментировать
  • Как передать пароль exe запускаемому из powershell?

    @Akela_wolf
    Extreme Programmer
    Храните пароль в файле pgpass
    С vaccumdb не пробовал, но psql его оттуда отлично подхватывает.

    https://www.postgresql.org/docs/current/libpq-pgpa...
    Ответ написан
    Комментировать
  • Доступ по доменному имени к ресурсу внутри сети, находясь внутри сети?

    @Akela_wolf
    Extreme Programmer
    Так пропишите на микротике статический ДНС на 10.10.10.15 - по идее это решит проблему.
    Ответ написан
    Комментировать
  • Как обновить несколько строк списком?

    @Akela_wolf
    Extreme Programmer
    Без извращений:
    UPDATE `counters` SET `counter` = NULL WHERE `id` IN (1, 2, 3, 4, 5, ...);


    То что вы пишете (NEW.games) намекает на использование триггера. Это так?
    Ответ написан