Задать вопрос
  • После установки SSL отвалились редиректы на HTTPS?

    @Sing303
    Попробуй редиректы в htaccess настроить так

    #Https
    RewriteCond %{HTTP:X-Forwarded-Proto} !https
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=302]
    
    #WWW
    RewriteCond %{HTTP_HOST} ^www\.(.*)$
    RewriteRule ^(.*)$ https://%1/$1 [L,R=302]
    Ответ написан
    1 комментарий
  • Как использовать debounce в jquery?

    @Sing303
    jQuery(function($) {
        var updateCart = _.debounce(function() {
          $('[name="update_cart"]').trigger('click');
        }, 1300);
    
        $('body').on('change', '.qty', function() {
          updateCart();
        });
    
        $('body').on('click', '.quantity-button.inc, .quantity-button.dec', function() {
          updateCart();
        });
      });
    Ответ написан
    3 комментария
  • Не выводить сохранные пароли при перезаходе как решить?

    @Sing303
    У вас при каждом запуске в generate_key новый ключ генерируется же? Получается вы при перезапуске теряете старый ключ и генерируете новый. Нужно сохранять ключ и при перезапуске загружать ранее созданный ключ с помощью которого были добавлены пароли

    Типа такого (не проверял)
    def generate_key():
        try:
            key = load_key()
        except FileNotFoundError:
            key = Fernet.generate_key()
            write_key(key)
        return key
    Ответ написан
    Комментировать
  • Какие программы используете для отслеживания рабочего времени?

    @Sing303
    Для детального можно использовать Toggl
    Я последнее время пользовался простенькой програмкой на мобильном TickTime
    Ответ написан
    Комментировать
  • Стоит ли покупать MacBook Air?

    @Sing303
    Для бека мне не хватало его, а для фронта кажется идеальной машиной, стоит)
    Ответ написан
    Комментировать
  • Смарфон с качественой камерой от 48Мп имеющий самый большой пиксель?

    @Sing303
    Мп в телефонах особо ничего не решают
    Топовые снимки сейчас делают последние флагаманы от Apple / Google / Samsung / Huawei
    Каждые из этих камер снимают в чём то лучше других, в чём то хуже. Универсальных и идеальных нет
    Смотрите снимки в разных условиях для каждого из этих телефонов, и выбираете тот, у которого снимки вам субъективно больше нравятся
    Ответ написан
    Комментировать
  • Почему вес файла меньше ожидаемого?

    @Sing303
    В первом случае вы узнаёте размер файла
    Во втором случае вы узнаёте длину строки filePath в байтах
    Ответ написан
    5 комментариев
  • Стоит ли вкладываться в красный диплом?

    @Sing303
    Работаю в IT около 10 лет. Тут не то что про цвет, меня про сам диплом всего 1 раз спрашивали
    Сомнительная польза, кажется, что можно потратить это время на куда более полезные знания
    Сам диплом даёт достаточно бонусов (для эмиграции, например). Красный ничего не добавляет
    Ответ написан
    Комментировать
  • Стоит ли обновляться на Windows 11?

    @Sing303
    Поставил месяц назад, визуально очень понравилась, субъективно даже приятнее MacOs стала
    Никаких отрицательных изменений не заметил, как будто просто новый и приятный скин для 10ки поставил
    Производительность та же, workflow тот же (пуском не пользуюсь, привык к аналогам spotlight для запуска всего)

    Использование: .NET разработка / Docker
    Ответ написан
    Комментировать
  • Я сделал 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 комментариев
  • Сборка ПК для изучения фронтенда?

    @Sing303
    Для обычного фронта без серьёзных enterprise проектов достаточно и даже с запасом (HDD кажется лишним)
    Если есть денег, я бы на фронт лучше взял M1 Air 16/512 (просто потому что в тыщу раз удобнее большой коробки)
    Ответ написан
    Комментировать
  • Как быстрее прочитать построчно большой файл?

    @Sing303
    FAR не открывает весь файл целиком, если он превышает некоторые ​допустимые пределы
    Он открывает определённую область файла, и при скролле/поиске подгружает нужные области
    По факту там реально может быть открыт кусок 1-2 мб из файла, а все остальное подгружаться динамически
    Нет смысла пытаться засовывать в RichTextBox 40 гб, достаточно засунуть столько, сколько можно глазами просмотреть за 1 раз. Ну и обработка 40 гб файла обычной линейной стурктуры дело не самое быстрое, чтобы его ускорить, файл должен иметь какой нибудь особый формат с поддержкой индексов и искать уже по ним
    Ответ написан
    Комментировать
  • Обязательно ли иметь последнюю версию Visual Studio?

    @Sing303
    Все студии "лагают" примерно одинаково. Откат не даст пользоваться последними версиями языка
    Можете ещё попробовать Rider вместо Visual Studio
    Ответ написан
    Комментировать
  • Как высыпаться за 6 часов?

    @Sing303
    Все попытки спать меньше могут сказаться на здоровье в будущем
    Время нужно освобождать не за счёт дефицита сна
    Ответ написан
    Комментировать
  • Какие заметки на рабочий стол вы используете?

    @Sing303
    Использую Google Keep. Открыт всегда в прикреплённой вкладке браузера
    Удобный поиск, нет ничего лишнего, доступен со всех компов и телефона

    А рабочий стол на винде вообще чистый, даже ярлыков нет)
    Ответ написан
    1 комментарий
  • Как составлять план на день?

    @Sing303
    Это слишком обширная тема, чтобы дать ответ в 1 сообщении
    Рекомендую почитать книгу "Джедайские техники. Как воспитать свою обезьяну, о..."
    В ней неплохо раскрывается как это делать и почему большинство тайм менеджмент техник не работает для всех людей
    Ответ написан
    Комментировать
  • Как увеличить скорость воспроизведения на Ютьюбе до 3х и больше?

    @Sing303
    Уже давно использую это расширение
    https://chrome.google.com/webstore/detail/video-sp...

    Шаг ускорения любого видео (не только youtube) +-0.1 (от 0.07 до 16.00)
    Must have :)
    Ответ написан
    1 комментарий
  • Зарубежные аналоги digiseller.ru?

    @Sing303
    Ещё https://rocketr.net/ используют (там особо не смотрят на сам товар)
    Ответ написан
    Комментировать
  • Планирования целей по SMART системе, есть ли сервис или софт для этого?

    @Sing303
    Есть целый комбайн, например

    Но я бы лучше ставил и анализировал цели в каком нибудь Word (Google Docs), а задачи ставил в обычный todo list на подобии todoist/ticktick
    За основу можно взять и доработать под себя этот метод, в нём описано практически всё, что нужно (если это личные цели, а не рабочие)
    Ответ написан
    Комментировать