• Есть ли аналог outline?

    @Drno
    Альтернатива. Для хомячков - амнезия

    Для более вдумчивого и на долгосрок - 3x-ui. Веб панель. Настраивать vless xtls reallity
    Ответ написан
    Комментировать
  • Есть ли аналог outline?

    iDx
    @iDx
    Ответ написан
    Комментировать
  • Комп или ноут для ue5?

    Get-Web
    @Get-Web
    Front-End Developer
    Если будешь работать в офисе, тебе предоставят рабочее место и ПК и ты сам все будешь настраивать как тебе нужно в рамках доступного ПО. То есть если у тебя например винда, то в офисе вполне возможно будет линукс, если тебе нужно что-то поставить, зовешь сис админа. Все зависит от компании, хорошие компании, даже для удаленной работы предоставляют свой ПК и мониторы, чтобы ты использовал его только для работы и тебе было максимально комфортно.

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

    Если работодатель просит тебя принести свой компьютер в офис, то лучше не связывайся с такой компанией..
    Ответ написан
    Комментировать
  • Комп или ноут для ue5?

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

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

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

    Ноутбуки и планшетники это устройства потребления контента
    Ответ написан
    Комментировать
  • Материал для изучение Fullstack?

    Sanes
    @Sanes
    Документацию читайте. На курсах не учат, а знакомят с предметом. Как только это поймёте, так сразу всё встанет на свои места.
    Ответ написан
    Комментировать
  • Как запретить скачивание торрентов на своем VPN сервере?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Разрешите наружу с впна только нужные порты - HTTP(S), почту и т. д. Это решит 90% проблем.
    Ответ написан
    2 комментария
  • ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO): что делать?

    @lexadef
    Это может быть, если пароль не был задан при установке.

    Порядок действий для установки/смены пароля root в mysql следующий:

    1. Остановить mysql:
    sudo service mysql stop

    2. Запустить сервис со следующими параметрами:
    sudo mysqld --skip-grant-tables --user=root

    Если выдал ошибку то в файле /etc/mysql/mysql.conf.d/mysqld.cnf в секцию [mysqld] добавить строчкуskip-grant-tables и выполнить sudo service mysql restart

    3. После этого подключиться к mysql командой:
    mysql -u root

    4. Обновить пароль root'a:
    UPDATE mysql.user SET authentication_string=PASSWORD('<новый пароль>'), plugin='mysql_native_password' WHERE User='root' AND Host='localhost';    
    FLUSH PRIVILEGES;


    5. И перезапустить сервис:
    sudo service mysql restart
    Если на шаге 2 вы добавляли skip-grant-tables в /etc/mysql/mysql.conf.d/mysqld.cnf - удалить эту строчку.


    Подробнее в Русскоязычной документации Ubuntu
    Ответ написан
    3 комментария
  • Кто такой кодер? и чем он отличается от программиста?

    RiseOfDeath
    @RiseOfDeath
    Диванный эксперт.
    Кодер пишет код программы. Программист чинит микроволновки, настраивает телефоны, ремонтирует офисную мебель и, в исключительных случаях, пишет программы.
    Ответ написан
    Комментировать
  • Структура базы данных магазина/каталога для SQL. Как лучше хранить атрибуты и их значения в БД?

    @dimoff66
    Кратко о себе: Я есть
    1) Не очень понятно назначение таблицы product_value, допустим у вас есть товар Куртка зимняя, у него есть два варианта (цвет: черный, размер: 42), (цвет: красный, размер: 43), и что будет в таблице?
    Четыре записи:
    Куртка зимняяЦвет черный
    Куртка зимняяЦвет красный
    Куртка зимняяразмер 42
    Куртка зимняяразмер 43


    И как вы определите, как эти свойства соотносятся и главное как вы это будете использовать?
    У вас же будут вноситься данные по продажам?

    Назначение этой таблицы в таком виде непонятно, я бы предложил сделать таблицы

    attributes_sets (модификации товара)
    • id
    • product_id
    • title


    и

    attributes_sets_values (значения свойств данной модификации)
    • attributes_set_id
    • value_id


    Тогда получится таблица вида

    Куртка: вариант 1 Цвет черный
    Куртка: вариант 1размер 42
    Куртка: вариант 2 Цвет красный
    Куртка: вариант 2размер 43


    и в таблицах с движениями товаров можно указывать просто id модификации, которая и будет содержать полную информацию о включенных в него значениях атрибутов.

    Также можно писать в поле title таблицы attributes_sets значения модификации через запятую "черный, 42", это упростит вывод информации о модификации в отчетах.

    2) В product_value(или attributes_sets_values, если примените пункт 1) можно добавить поля attribute_id, value_int, это позволит для числовых атрибутов не задавать заранее список значений в values, а сразу указывать числовое значение

    3) Цены лучше не хранить в товаре, а сделать отдельные таблицы

    price_types: id, name
    prices: price_type_id, product_id, set_date, price

    Это позволит назначать товару разные цены в зависимости от всякого рода условий, можно также добавить в prices поле user_id, чтобы не возникал вопрос кто поменял цену
    Ответ написан
    1 комментарий
  • Как сделать онлайн-расчет через API ТК Энергия?

    New_Horizons
    @New_Horizons
    Бред:
    В элементе items массива забыл ещё одни квадратные скобки
    Ответ написан
    1 комментарий
  • Golang подходит ли для создания сайтов?

    @MadridianFox
    Web-программист, многостаночник
    1) Go компилируемый, само собой скорость выше, но если вы на маленьком сайте упираетесь в скорость исполнения кода, то проблема скорее в коде, и выбор более быстрого языка избавит вас только от симптома, но не от болезни
    2) на seo влияет только то ЧТО вы отдаёте пауку. Не важно на каком языке пишется программа, которая отдаёт html
    3) Программа написанная на go сама работает как сервер. Более того, это не какой-то сервер приложений, как например tomcat, нет, вы сами будете писать цикл обработки входящих соединений - т.е. вам необходимо этот самый серер реализовать. В отличие от php+apache, где в качестве сервера выступает apache, который при необходимости вызывает php. Ставить ли apache или nginx перед go сервером вы решаете сами.
    4) Поддерживает. На скорость работы СУБД не влияет то, на каком языке написана программа, которая к ней обращается.
    5) Фреймворков уровня Yii2 или Symfony не наблюдается. Ситуация такая же как и с NodeJS - что-то есть, но комбайнов нет.
    6) Если что-то может слушать соккет - на этом можно написать сайт. Любой. Другое дело, что сайты визитки на Go не пишут (только ради забавы), а крупные сайты вообще имеют сложную архитектуру, такую что язык уже не имеет значения.
    7) Для php разработчика - да. Как минимум вы меняете скриптовый язык на компилируемый. Это значит что любое изменение кода требует компиляции, остановки работающего сервера, загрузки бинарника на его место и запуск. Кроме того вы меняете Stateless модель работы кода на полноценно работающую программу. Если на php у вас скрипт запускался заново при каждом http запросе, то программа на go запускается один раз и после этого принимает множество запросов.
    Ответ написан
    10 комментариев
  • Могу ли я заниматься коммерческой разработкой (backend с php) на Windows 10?

    @ArduinoFlow
    FullStack разработчик.
    Почему то у меня таких глупых вопросов не было. Тупо сел и учил, узнал что сервера на линукс, снёс на фиг винду поставил линукс, 2 недели со слезами поразберался. Если честно пока учился, да в мыслях не была "а дайка я задам вопрос, может что то мне не надо знать". Я считаю знать Linux обязательно.
    Ответ написан
    1 комментарий
  • Какой лучший бесплатный CRUD генератор для Laravel?

    @lolrofl01
    Сколько не брал разные готовые решения - все равно приходилось разбираться что к чему, читать доку, часть переписывать. Лично я не увидел какой-то большой экономии времени по сравнению с самостоятельным написанием. Если часто пишете админки, то зачем каждый раз писать разное? Суть то одна, возьмите crud из предыдущей админки.
    Ответ написан
    1 комментарий
  • Как поставить права на папку /var/www?

    Endru9
    @Endru9
    Админ Linux
    Давать файлам права на исполнение потенциально опасно.
    Все директории должны иметь права 775, а файлы 664, поэтому:
    find /var/www/ -type d -exec chmod 755 {} \;
    find /var/www/ -type f -exec chmod 644 {} \;

    иначе привет от shell
    Ответ написан
    2 комментария
  • Микросервисная архитектура: насколько микро? и почему не возникает проблем с долгим ожиданием?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Вы задаётесь очень сложными вопросами, развёрнутый ответ на каждый из которых вряд ли влезет в лимит символов ресурса. Чтобы разобраться с первой проблемой, стоит прочитать "Предметно-ориентированное проектирование" Эванса. Грубо говоря, микросервис должен оперировать небольшим самостоятельным подмножеством данных. Для поиска ответов на вторую и третью проблему хорошим стартом может быть "Высоконагруженные приложения" Клепмана. Да, взаимодействие внутри микросервисной системы очевидно медленнее, чем вызовы внутри монолита, у всего есть цена. Но при правильно написанном коде, правильно выбранной архитектуре и правильно построенной инфраструктуре скорость всё ещё достаточно, чтобы отвечать на запросы за доли секунды. А для согласованности приходится применять подходы вроде паттерна "сага".
    Ответ написан
    Комментировать
  • Как на лету поменять название скачиваемого файла?

    berezuev
    @berezuev
    #define TRUE FALSE
    <a href="http://test.ru/upload/10-testoviy-file.doc" download="10 тестовый файл.doc">10 тестовый файл</a>
    Ответ написан
    1 комментарий
  • Как можно обновлять div не перезагружая страницу целиком?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    1) Каждую секунду обновлять данные - плохо, рано или поздно это приведет к неоправдано высокой нагрузке сервера.
    2) По уму на такие задачи поднимают сокет, и при изменении на сервере рассылают в нужные сокеты изменившуюся информацию.
    3) Как простой вариант - по setInterval() запускайте аякс запрос и полученные данные выводите в нужный див.
    Ответ написан
    Комментировать
  • Корзина интернет-магазина: данные в cookies, или в базе

    Bartez
    @Bartez
    Раньше было принято хранить корзину в куках.
    Сейчас хорошей практикой является хранение корзины в БД.

    Преимущества хранения в БД:
    1) Корзина может храниться сколько угодно долго.
    2) Корзина не теряется, если покупатель зашёл с другого браузера/компьютера.
    Ответ написан
    2 комментария
  • Как правильно написать метод модели с динамическими полями?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Вопрос очень хороший. И код в целом неплохой. А ошибки совершенно стандартные, их делают все.

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

    Причем никакие преимущества ООП в нем не используются.
    Этот класс - тупо набор функций. Причем для следующей таблицы придется писать точно такой же.

    Соответственно, сначала надо сделать код универсальным, и вынести в абстрактный класс.
    Заодно исправив в нём одну критическую ошибку (с безопасностью) и одну логическую.
    Что будет, если значения двух последних элементов массива совпадут? Тогда уж надо ключи сравнивать, а не значения.
    И зачем вообще такие ухищрения с поиском последнего элемента, если у тебя есть переменная $fields? Если она пустая - значит это первый оборот цикла. Всё, этого достаточно

    По поводу безопасности я уже устал объяснять.
    Мы старательно защищаем значения, передаваемые в запрос, но при этом не моргнув глазом пропускаем инъекцию через имена полей.
    Список полей всегда надо писать явно. Тем более что это потом пригодится в миллионе случаев.

    abstract class AbstractTableGateway
    {
        protected $db;
        protected $table;
        protected $fields;
        protected $primary = 'id';
    
        public function __construct(DB $db)
        {
            $this->db = $db;
        }
        public function update(array $params): void
        {
            $this->validate($params);
    
            $set = "";
            foreach($params as $key => $value)
            {
                if ($key !== $this->primary)
                    $set .= ($set ? "," : "") . "`$key` = :$key";
                }
            }
            $sql = "UPDATE `$this->table` SET $set WHERE `$this->primary`=:$this->primary";
            $this->db->query($sql, $params);
        }
        protected function validate($data)
        {
            $diff = array_diff(array_keys($data), $this->fields);
            if ($diff) {
                throw new \InvalidArgumentException("Unknown field(s): ". implode(",",$diff));
            }
        }
    }


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

    После этого уже можно создавать класс юзер (и не повторять, как попугай, user user по 10 раз)

    class UserGateway extends AbstractTableGateway {
        protected $table = 'users';
        protected $fields = ['email', 'password', 'name', 'birthday'];
        protected $primary = 'user_id';
    }


    И спокойно к нему обращаться в коде

    $user = new UserGateway();
    $user->update($params);
    Ответ написан
  • Какое окружение вы используете для разработки php?

    DevMan
    @DevMan
    phpstorm для основной разработки, любой редактор под руками (vsc, atom, sublime, nano, vim...) для посмотреть/быстрых маленьких правок.

    сервер: все (за редким исключением) ставлю из пакетов, затем допиливаю ручками.

    phpmyadmin/аналоги–для–других–баз последний раз видел году в 2010. с тех пор использую либо консоль, либо гуевые тулзы (для удаленного доступа через ssh/http–тунель).

    докеры, вагранты, "идентичное проду окружение", "сборки – гавно" – это все типичный булшит и базвордс.
    иногда перечисленное реально нужно и полезно (сам пользую где надо), но далеко не всегда/везде и не всем.

    разрабатываете в одиночку – вообще пофигу на чем, лишь бы вас устраивало и было вам удобно.
    разрабатываете в команде – пока ваш код запускается у других участников (что не проблема, если понимать что делаешь/особенности языка под разные платформы/следование принятым соглашениям), всем плевать на чем вы его у себя крутите. хоть стоя в лыжах в гамаке и на утюге.
    Ответ написан
    12 комментариев