Задать вопрос
  • Лучший способ автоматического бэкапа для mysql?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Все зависит от начальных условий.
    Если условия "я тут мимо проходил, покажите какие кнопочки нажимать", то тогда скорее всего подойдут решения, предложенные выше. Но на более менее нормальном сайте (постоянная запись в БД, транзакции) не будет выполняться условие "Бэкап должен не мешать работе сайта"
    В этом случае надо использовать percona xtrabackup

    Я, правда, в свою очередь не уверен в требованиях "Защищенная работа обработчика" и "возможность работы через ISPmanager".
    Первое это какая-то непонятная чушь, а про второе я просто не в курсе. Никогда не пользовался этим мусором и никому не советую.
    Ответ написан
    Комментировать
  • Лучший способ автоматического бэкапа для mysql?

    @Drno
    бэкап обычным bash скриптом
    скрипт запихнуть в крон
    после выполнения бэкапа - с помощью rclone копирование на ftp или облако или куда угодно фактически
    Ответ написан
    4 комментария
  • Почему хост и его GW(гейтвей сети) должны быть в одном L2 домене(в одном vlan)?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Представьте обратную ситуацию - хост и его шлюз НЕ находятся в пределах одной сети. Тогда, очевидно, чтобы отправить пакет шлюзу, требуется какой-то узел в сети, маршрутизирующий пакеты за её пределы. Хоп, вы получили новый шлюз.
    Ответ написан
    Комментировать
  • Как использовать регулярные выражения в find?

    DollyPapper
    @DollyPapper
    Во первых не --name, а -regex.
    find . -regextype posix-extended -regex ./'10{3}'
    регексы в find по умолчанию используются от emacs. Т.к. не очень хочется разбираться чем они там отличаются от остальных используем -regextype posix-extended, ибо для любого линукс пользователя это скорее всего привычнее (все же использовали grep). find ищет по регексу выдываемый путь, а не путь по регексу, по этому нужно указать ./ в начале, ибо найденый путь будет ./1000, а не просто 1000
    Ответ написан
    2 комментария
  • WinRAR - какой официальный сайт и почему различаются хеш-суммы установщиков?

    CityCat4
    @CityCat4
    Дома с переломом ноги
    Могу предположить, что rarlab - сайт Рошаля, а win-rar - это сайт конторы. rarlab появился раньше и оснований его девать куда-то видимо нет :)
    Ответ написан
    Комментировать
  • Возможно ли устроиться программистом с общим образованием?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Нельзя устроиться с таким уровнем поисковых навыков. Этот вопрос здесь задавался уже сотники раз.
    Ответ написан
    3 комментария
  • Какая книга по С++ мне лучше подойдёт?

    @res2001
    Developer, ex-admin
    Вам нужна книга, которую прочитаешь и сразу в "сеньоры" можно идти?
    Боюсь такой нет. Только практика и еще раз практика.

    Из продвинутых книг могу посоветовать:
    1. Эффективный и современный С++. 42 рекомендации по использованию C11 и C14
    в ней очень толково описаны нововведения в стандартах уже не совсем свежих, но эти нововведения чуть ли не самое главное изменение в языке до сих пор.
    2. Параллельное программирование на С++ в действии. Практика разработки многопоточных программ
    3. Оптимизация программ на C++. Проверенные методы повышения производительности.
    Ответ написан
    2 комментария
  • Какой выбрать стэк технологий исходя из моего опыта?

    @mletov
    Смысла в джуниор фулстак разработчике я не вижу, особенно если метить в крупную фирму.

    и
    Хочется двигаться в сторону фулстака, даже если не для работы сейчас, то для себя, чтобы некоторые проекты свои написать.

    Вы уж определитесь)
    Вакансий хватает всяких и разных, в т ч и фулстек, в т ч и в достаточно крупных фирмах.

    Очень смущает
    фирмы в которые попал в своем городе не понравились

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

    За вас никто решить не может.
    Все советы будут вкусовщиной и IMHO.
    Нравится React - качайте React и все сопутствующее на фронте (JS, верстку, вебпак). Нравится laravel - качайте PHP и все, что рядом (MySql). Нравится nodejs - качайте его, JS и монгу какую-нибудь.
    Повторюсь, вакансии, в т ч и хорошо оплачиваемые, есть и в изобилии по всем перечисленным вами направлениям. Вопрос только в ваших предпочтениях и в вашем уровне подготовки.

    Как тут принято говорить: "На вопрос нельзя дать однозначный ответ"
    Ответ написан
    Комментировать
  • Компьютер с какими характеристиками нужен для нормальной работы докер десктоп в винде?

    @Drno
    Поставьте виртуалку с линукс
    выделите ей 2гб
    поставьте докер
    Профит)
    Ответ написан
    Комментировать
  • Кто должен адаптировать сайт под разные разрешения мониторов?

    @ildar-meyker
    Верстальщик никому ничего не должен по умолчанию просто так. Если вы готовы платить, обговорите условия, и вам все сделают. Скорее всего, в вашем случае макет попал в руки не к самому лучшему исполнителю. Не любой исполнитель может работать без макета. Но оставлять так, что при 1600 что-то не влезло в экран, это дикость.
    Ответ написан
    1 комментарий
  • Достаточно ли безопасна реализация удаленного доступа?

    gbg
    @gbg
    Любые ответы на любые вопросы
    Небезопасно просто потому, что вы изобрели лисапед вместо SSL.
    Как минимум, отсутствует наглухо защита от MitM
    Ответ написан
    4 комментария
  • Как ускорить брутфорс?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    есть-ли вариант как это все дело ускорить до нескольких миллионов комбинаций в секунду как тут
    Железо поменять, тогда возможно. А так - брут он и в Африке брут, все упирается в проц, программная среда может выиграть пару процентов, но на такой задаче серьезного буста производительности даже ассемблер не даст.
    Ответ написан
    1 комментарий
  • Можно ли написать команды бота в разных файлах?

    @dasadafa
    изучаю Python
    В питоне вы создадте файл и подмапите его from название файла(без разширения .py) import *
    пример
    def <b>название(любое)</b>
        программа сома

    и в другом файле в программе можете написать
    from <b>название файла(без разширения .py)</b> import *
    
    код
    
    название(указоное выше)
    
    код


    Вот пример как я это использую
    основной файл
    from дополнительный файл import * 
    print(ERROR)


    дополнительный файл
    ERORR = 'вася у тебя ошибка'
    если остались вопросы пишите мне в дискорд (dasadafa#0834)
    то что работает я не уверен так как не во всех случяях работает
    Ответ написан
    4 комментария
  • Можно ли в гитхаб объединять код в одном файле при совместной работе, а не заменять версии?

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

    Правильно ли я понимаю
    Гит на сервере никак не связан с вашим компьютером.

    Нормально ли
    Да делайте как хотите, полиции гита урезали финансирование и они теперь никого не арестовывают. Но вообще для "кусков кода" есть https://gist.github.com.
    Ответ написан
    Комментировать
  • Как сложить все числа в txt файле?

    А с чем именно у тебя возникла сложность?
    Прочитать файл - File.ReadAllLines
    Преобразовать строку в число, чтобы сложить - int.Parse или double.Parse, или любой другой Parse / TryParse. Ну Convert в конце концов
    Сложить циклом или через Linq, думаю, ты сам поймёшь как
    Как результат положить в переменную, наверное тоже и так понятно
    Ответ написан
    Комментировать
  • Я сделал Code Review, может быть я где-то ошибся или у вас есть что добавить?

    @Sing303
    Опишу, как бы комментировал я
    public sealed class DataProvider : IDisposable
    {
        // nit: Предложил бы названия firstValue, secondValue либо более осмысленные, если возможно
        public extern int LongRunningCalculation(int value, int value2);
        public extern void Dispose();
    }
    
    // nit: сразу бы хотелось видеть уровень доступа и sealed (если класс не планируется наследовать)
    // Class2 - дать нормальное имя
    // { - перенести на 2ю строку по рекомендациям code style от microsoft (если не принято иных)
    class Class2 {
        // Синхронизация не нужна, если убрать метод Init, а Create вызвать в статическом конструкторе
        private readonly object _sync = new object();
        
        // _ht - дать осмысленное название
        // Судя по использованию, value может быть int`ом. Не зачем иметь лишний boxing и проверки на тип
        // _ht статический, значит к нему могут быть обращения из разных потоков, лучше сделать его ConcurrentDictionary
        // Прям сходу не могу сказать, но, возможно, использовал бы какой то другой тип Dictionary <key, key, val> (самописный или существующий), кажется, так было бы быстрее чем массив в ключе
        private static Dictionary<int[], object> _ht; 
    
        // nit: хотелось бы имена со смыслом
        public int GetValue(int index, int index2)
        {
            // Лишний метод, удалить. Create вызовем в static конструкторе
            Init();
            // Если ключ у нас объект, то необходимо реализовать IEqualityComparer для этого Dictionary (иначе не понятно как по нему искать)
            var key = new[] {index, index2};
            // Проверка на тип не нужна, Dictionary сделаем типа int
            if (_ht.ContainsKey(key) & _ht[key].GetType() == typeof(int))
                // приведение типов больше не нужно
                return ((int)_ht[key]);
            // nit: else не обязателен
            else
                // int не может быть null, будет ошибка, вернуть либо default, либо возвращаемое значение должно быть int?
                return null;
        }
    
        // Метод удалить, вызовем Create в статическом конструкторе без lock
        public void Init() 
        {
            if (_ht == null)
                lock (_sync)
                    Create();
        }
        
        // Нет смысла делать метод public, сделать private
        public static void Create() 
        {
            // nit: и так видно какой тип создаём, можно использовать var
            // Обернуть в using
            DataProvider provider = new DataProvider();
            
            // Тут следует инициализировать значение _ht, т.к. ранее оно нигде не создаётся
            // Не забыть передать реализацию IEqualityComparer в конструктор
            
            // nit: хотелось бы видеть использование фигурных скобок (если не принят иной code style)
            // nit: вместо int можно var
            // i и j, похоже, несут какой то смысл, можно попробовать придумать нормальное название (иначе не понятно почему 100 и 12, их можно в константы класса)
            // nit: возможно можно использовать Parallel.ForEach
            for (int i = 0; i < 100; i++)
                for (int j = 1; j <= 12; j++)
                    _ht[new [] { i, j }] = provider.LongRunningCalculation(i, j);
        }
    }

    А переписал бы так (если не убирать массив в dictionary)
    public interface IDataProvider : IDisposable
    {
        int LongRunningCalculation(int firstValue, int secondValue);
    }
    
    public sealed class DataProvider : IDataProvider
    {
        public extern int LongRunningCalculation(int firstValue, int secondValue);
        public extern void Dispose();
    }
    
    public sealed class DataProviderService
    {
        public DataProviderService(IDataProvider dataProvider)
        {
            _dataProvider = dataProvider;
        }
    
        private static readonly ConcurrentDictionary<int[], int?> _calculatedCache = new ConcurrentDictionary<int[], int?>(new CalculatedEqualityComparer());
        private readonly IDataProvider _dataProvider;
    
        public int? GetValue(int firstValue, int secondValue)
        {
            var isNotSupportedValues = firstValue > 100 || firstValue < 0 || secondValue < 1 || secondValue > 12;
            if (isNotSupportedValues)
            {
                return null;
            }
    
            var key = new[] { firstValue, secondValue };
            if (!_calculatedCache.TryGetValue(key, out var result))
            {
                result = _dataProvider.LongRunningCalculation(firstValue, secondValue);
                _calculatedCache.TryAdd(key, result);
            }
            
            return result;
        }
    }
    Ответ написан
    5 комментариев
  • Технический нейминг серверов. По какому принципу называть сервера?

    flapflapjack
    @flapflapjack
    на треть я прав
    Ну у нас сервера зовутся:

    CR-MOW-DC (центр реабилитации - москва - домен контроллер)
    MS-SYK-HV (Медцентр Суперский - сыктывкар - гипервизор)

    Ну имена вымышленные, но суть передал.

    И я по названию понимаю, к какой организации относится сервер, в каком он городе, и чем занимается.
    Ответ написан
    3 комментария
  • Стоит ли обновляться на Windows 11?

    xez
    @xez
    TL Junior Roo
    Перешел в первый день релиза.
    Проблем нет.
    Использую ПК как основной рабочий инструмент.
    Использую:
    хром, фф, докер (всл 2), идею, телегу, мс офис 19й, стим, эпик ну и по мелочи...

    Нет никакой 11й винды. Это очередное обновление десятки.
    О себе она думает следующее:
    Microsoft Windows [Version 10.0.22000.469]
    Ответ написан
    Комментировать
  • Как узнать с какого smtp сервера ушел email и можно ли проследить всю цепочку?

    Смотрите заголовки Received, как правило в них есть вся цепочка начиная от формирования письма. Можно воспользоваться чем-то типа https://toolbox.googleapps.com/apps/messageheader/ - но обычно все гораздо лучше и больше видно по самим заголовкам. Вот, например, заголовки Received письма полученного через списки рассылки:

    Received: from smtp2.osuosl.org ([140.211.166.133]:43816)
    	by mx242.i.mail.ru with esmtp (envelope-from <openid-specs-risc-bounces@lists.openid.net>)
    	id 1nD7cH-000BCL-Nx; Thu, 27 Jan 2022 19:27:22 +0300
    Received: from localhost (localhost [127.0.0.1])
    	by smtp2.osuosl.org (Postfix) with ESMTP id 818F640207;
    	Thu, 27 Jan 2022 16:27:16 +0000 (UTC)
    Received: from smtp2.osuosl.org ([127.0.0.1])
    	by localhost (smtp2.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)
    	with ESMTP id 0oLF9wJ5GV1X; Thu, 27 Jan 2022 16:27:15 +0000 (UTC)
    Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34])
    	by smtp2.osuosl.org (Postfix) with ESMTP id F27D4401DD;
    	Thu, 27 Jan 2022 16:27:14 +0000 (UTC)
    Received: from smtp2.osuosl.org (smtp2.osuosl.org [140.211.166.133])
     by ash.osuosl.org (Postfix) with ESMTP id 4A7A21BF84C
     for <openid-specs-risc@lists.openid.net>; Thu, 27 Jan 2022 16:27:11 +0000 (UTC)
    Received: from localhost (localhost [127.0.0.1])
     by smtp2.osuosl.org (Postfix) with ESMTP id 36EB3401DD
     for <openid-specs-risc@lists.openid.net>; Thu, 27 Jan 2022 16:27:11 +0000 (UTC)
    Received: from smtp2.osuosl.org ([127.0.0.1])
     by localhost (smtp2.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)
     with ESMTP id 6ALaTL5qxGLX for <openid-specs-risc@lists.openid.net>;
     Thu, 27 Jan 2022 16:27:09 +0000 (UTC)
    Received: from rcdn-iport-6.cisco.com (rcdn-iport-6.cisco.com [173.37.86.77])
     by smtp2.osuosl.org (Postfix) with ESMTPS id B051F400CC
     for <Openid-specs-risc@lists.openid.net>; Thu, 27 Jan 2022 16:27:09 +0000 (UTC)
    Received: from rcdn-core-7.cisco.com ([173.37.93.143])
     by rcdn-iport-6.cisco.com with ESMTP/TLS/DHE-RSA-SEED-SHA;
     27 Jan 2022 16:19:37 +0000
    Received: from mail.cisco.com (xbe-rcd-004.cisco.com [173.37.102.19])
     by rcdn-core-7.cisco.com (8.15.2/8.15.2) with ESMTPS id 20RGJaJO009169
     (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=OK)
     for <Openid-specs-risc@lists.openid.net>; Thu, 27 Jan 2022 16:19:36 GMT
    Received: from xfe-rtp-001.cisco.com (64.101.210.231) by xbe-rcd-004.cisco.com
     (173.37.102.19) with Microsoft SMTP Server (version=TLS1_2,
     cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.14; Thu, 27 Jan
     2022 10:19:36 -0600
    Received: from xfe-aln-005.cisco.com (173.37.135.125) by xfe-rtp-001.cisco.com
     (64.101.210.231) with Microsoft SMTP Server (version=TLS1_2,
     cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.14; Thu, 27 Jan
     2022 11:19:36 -0500
    Received: from NAM10-DM6-obe.outbound.protection.outlook.com (173.37.151.57)
     by xfe-aln-005.cisco.com (173.37.135.125) with Microsoft SMTP Server
     (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.14
     via Frontend Transport; Thu, 27 Jan 2022 10:19:35 -0600
    Received: from BL0PR11MB3267.namprd11.prod.outlook.com (2603:10b6:208:6b::22)
     by BL1PR11MB5318.namprd11.prod.outlook.com (2603:10b6:208:312::24)
     with Microsoft SMTP Server (version=TLS1_2,
     cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4930.17; Thu, 27 Jan
     2022 16:19:35 +0000
    Received: from BL0PR11MB3267.namprd11.prod.outlook.com
     ([fe80::c981:5c34:715b:b3a6]) by BL0PR11MB3267.namprd11.prod.outlook.com
     ([fe80::c981:5c34:715b:b3a6%3]) with mapi id 15.20.4930.018; Thu, 27 Jan 2022
     16:19:34 +0000
    Ответ написан
    3 комментария
  • Как добавить один html файл в другой с помощью {{> }}?

    Это синтаксис handlebars, как сказали выше. В gulp есть такой плагин panini, он использует handlebars, но еще добавляет некоторые фишки (наследование шаблона).
    Также есть Nunjucks, он помощнее.
    Ответ написан
    Комментировать