• Как исправить ошибку при git push?

    Stalker_RED
    @Stalker_RED
    HTTP Error 413 - Content Too Large

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

    Либо переключите git с https на SSH, тогда вебсервер не повлияет.
    Ответ написан
    1 комментарий
  • Как исправить ошибку на странице каталога (магазина)?

    Stalker_RED
    @Stalker_RED
    Видимо на этой странице нет slug-а, добавльте проверку, хоть банальный isset().

    Ну и в целом код можно слегка упростить
    <?php
    $terms = get_terms( 'product_cat' );
    
    if ($terms) {
        $current_cat = get_queried_object()->slug;
        foreach ($terms as $term) {
            $another_cat = $term->slug;
            $activeClass = $current_cat == $another_cat ? 'class="active"' : '';
            $url = esc_url(get_term_link($term));
    
            echo "<a href=\"$url\" $activeClass>{$term->name}</a>";
        }
    }

    И наверное current_cat можно вынести за цикл.
    Да и вообще переменные $current_cat $another_cat можно убрать, они используются ровно один раз.
    Ответ написан
    Комментировать
  • Какую видеокарту выбрать на древний ПК?

    Adler_lug
    @Adler_lug
    Нечего там улучшать. Выкинуть все в мусорку и купить новое...
    Ответ написан
    Комментировать
  • Как лучше хранить журнал в долгосрочной перспективе?

    Stalker_RED
    @Stalker_RED
    По сути три больших направления с кучей мелких ответвлений
    1. хранить текстовый лог в отдельном файле/сервисе/логохранилище
    2. хранить лог действий юзеров в отдельной таблице (встречал один проект, где лог действий был в десятки раз больше, чем сами данные, ага).
    3. хранить в той-же таблице предыдущие записи. То есть при редактировании INSERT, а не UPDATE, при этом автоматически проставляется время и автор, а при выборке просто берете последнюю по времени версию.

    Это самый удобный путь, и самый простой для внедрения - очень простой откат, удобное сравнение изменений. Из минусов - раздуваете таблицу с данными, но это не проблема если записей не много или изменения редки.

    Особняком стоит упомянуть системы с возможностью одновременного редактирования несколькики пользователями, которые автоматически разруливают коллизии. Самый знакомый всем пример - google docs. Но это довольно сложно в реализации.

    С учетом "использоваться будет, я надеюсь редко" я бы остановился на текстовом логе. Отдельный лог на каждую запись, можно архивировать старые, можно logrotate натравить.
    Ответ написан
    1 комментарий
  • Как избавиться от кучи хлама в выводе sudo apt update (какие-то 404, игноры и пр.)?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Есть ли какой-то простой способ, чтобы не вникать во всю эту муть
    Конечно есть - нанять специалиста.
    Ответ написан
    8 комментариев
  • Как НЕ фиксировать транзакцию после отработки php скрипта?

    Stalker_RED
    @Stalker_RED
    Непонятно что именно вы таким образом делаете, но в целом похоже на довольно распространенные случаи типа "незавершенная регистрация" или "неоплаченная корзина с покупками", "недописанный и неопубликованный пост" например.
    Если эти данные вам не особо нужны можно вместо БД использовать какое-то другое хранилище - сессию или даже localStorage на клиенте.
    Если нужны, лучше писать все-таки в базу, ставить пометку о том, что это незавершенная история, или устанавливать время жизни, чтобы потом по расписанию удалить просроченные.

    Про сажаю/не сажаю вообще непонятно о чем речь.
    Ответ написан
    5 комментариев
  • Как вывести любую часть древовидного списка?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега MySQL
    Для реализации этой задачи хорошо подходит хранение в виде Nested Set. Хранение в виде Adjacency List подразумевает рекурсию и полную выборку.

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

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    It depends.
    Если у вас регистрация на сессиях, то можно просто задать время жизни сессии.
    Если на JWT, то соответствующее время жизни токена обновления.
    Если какой-то свой нестандартный вариант, то при запросе проверять время с момента последнего запроса.
    Ответ написан
    8 комментариев
  • Какой хороший ресурс чтобы изучить шаблоны проектирования ООП и все нюансы?

    vabka
    @vabka
    Токсичный шарпист
    refactoring.guru - один из наиболее качественных, если говорить о паттернах GoF.
    Ещё книга из серии Head First по паттернам достаточно легко читается.

    Но где применять в реальных задачах - это, в основном, только на практике.
    Ответ написан
    43 комментария
  • Как эффективно использовать 'сервисы' для обращения к БД?

    @historydev
    Острая аллергия на анимешников
    Для того чтобы проверить существет аккаунт с таким email приходиться делать одну функцию


    Используй самый простой паттерн - facade.

    Создай класс под работу с базой, создавай методы, а не функции и обращайся к ним, а ещё лучше создавай по классу-фасаду на сущность: User, Chat, News и т.д.

    2. В каждом из функции все повторяется кроме самого запроса, (и везде try-catch еще), можно как то это оптимизировать ?


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

    Adamos
    @Adamos
    1. Если эти итоги должны только отображаться.
    На той странице, которая будет отображать эти итоги, проверять, подведены ли они и не пора ли.
    Чтобы не случилось так, что страница открыта снова раньше, чем подведены итоги - блокировка.
    2. Если сразу при подведении должны быть выполнены некоторые действия
    Вешать на крон.
    Ответ написан
    3 комментария
  • Как создать тег на хабр Q & A?

    0xD34F
    @0xD34F
    Открываете форму обратной связи. В выпадающем списке "тема" выбираете пункт "гениальная идея". В текстовом поле "текст сообщения" излагаете суть - что за тэг, и почему его следует добавить. Подсказка: "почему следует добавить" - это, как минимум, наличие уже существующих вопросов, к которым новый тэг можно будет прицепить, и, наверное, не в количестве 3-5-10 штук, а побольше. Так что прежде чем предлагать добавление тэга, стоит воспользоваться поиском - убедитесь, что оно того стоит.
    Ответ написан
    Комментировать
  • Ошибки Readbean, которых раньше не видел?

    @maksam07
    Данные предупреждения указывают на то, что вы используете устаревшие методы в вашем коде, которые могут быть удалены в будущих версиях RedBean.

    Рекомендуется обновить код, используя актуальные методы и свойства для работы с RedBean. Это поможет вам избежать потенциальных проблем в будущем.

    Для исправления этих конкретных предупреждений, вам нужно обновить вашу установку RedBean на более новую версию или использовать более новый метод в соответствующих строках кода.

    Также необходимо убедиться, что вы используете версию PHP, которая поддерживает актуальные версии RedBean. Рекомендуется использовать PHP версии 7.0 или выше.

    Примеры исправления:

    Замените $sqltype_typeno на $typeno.
    Замените $encoding на $adapter->getCellEncoding().
    Замените $oodb на $redbean->getBeanHelper().
    Замените $toolbox на $redbean->getToolBox().

    Также рекомендуется проверить документацию RedBean для получения более подробной информации и примеров кода.
    Ответ написан
    Комментировать
  • Как при запросе к ссылке на FOREIGN KEY получить имя пользователя а не id?

    @alexalexes
    https://www.w3schools.com/sql/sql_join.asp
    В вашем случае Orders это artist,
    Customers это track,
    Customers.CustomerName - это ваш искомый artistname.
    В джоине участвуют атрибуты:
    ON Orders.CustomerID=Customers.CustomerID
    а у вас будут:
    ON artist.artistid=track.trackartist
    Ответ написан
    Комментировать
  • Как извлечь данные из привязанной таблицы?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    JOIN
    Ответ написан
    Комментировать
  • Как узнать, для какого процессора предназначен файл?

    bingo347
    @bingo347
    Crazy on performance...
    readelf -h /home/usr/qt-android/mylib.so
    Ответ написан
    Комментировать
  • Какие навыки требуются Junior программисту микроконтроллеров?

    @dima20155
    you don't choose c++. It chooses you
    1. Прежде всего, нужно знание схемотехники, но в вашем случае этот этап можно вычеркнуть.
    2. Естественно, знание основ С и С++ (синтаксиса, базовых конструкций). Советую вам использовать в своих проектах С++, поскольку зачастую вы сможете писать в стиле С без каких-либо проблем, а при необходимости воспользоваться фичами/библиотеками для С++.
    3. Навыки hardware и software отладки. Здесь просто нужна практика с любимой IDE.
    4. Понимание указателей, типов памяти (статическая, динамическая, автоматическая, регистровая). Как память выделяяется и прочее.
    5. Знание базовых структур данных. Это немного скользкий пункт, поскольку С++ предоставляет хорошую (хотя и весьма минималистичную) стандартную библиотеку STL, в которой есть большинство из необходимых структур данных, но они используют довольно много дополнительной аллокации памяти, поэтому если пишете под что-то 8битное, то имейте это ввиду.
    6. Знание git на базовом уровне сейчас важно для джуна любой IT специализации.
    7. Неплохо бы иметь базовое представление о том как устроен микроконтроллер и его архитектура.
    8. Неплохо бы понимать RTOS (FreeRTOS - классика жанра), а главное зачем он нужен, а когда он не нужен или вреден.
    9. Лично мне всегда в работе пригождается python, но это всегда сторонние задачи/автоматизация.

    P.S. Нашел ещё вот такой RoadMap.
    P.S.S. Получилось довольно объемно. Но пункты 2-5 по сути можно объединить в один. Все это можно изучить написав парочку проектов для классической STM32 + HAL.
    P.S.S.S. Сам начинал как hardware разработчик. Путь embedded разработчика начального уровня не был сложным для меня и занял не очень много времени.
    Ответ написан
    Комментировать
  • Почему доступен не весь объем SSD на linux?

    SagePtr
    @SagePtr
    Еда - это святое
    Часть зарезервирована пользователю root, недоступная другим пользователям, через tune2fs можно изменить.
    Ответ написан
    2 комментария