• Как ревёрс инженерить андроид приложения?

    mayton2019
    @mayton2019
    Bigdata Engineer
    В рамках такого детского любопытва что проявляет автор - скорее всего ничем нельзя помочь.

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

    Вобщем автору могу посоветовать не заниматься ерундой а учиться и еще раз учиться. Знание реверса - это практическая наука. И чтоб ее наработать нужно иметь "седое" зрение.

    Просто так ... надурняк ... не прокатит. Пускай ставит Android Studio и учит Java или Kotlin.
    Ответ написан
    6 комментариев
  • Как подключиться к сети через телефон?

    @MaksimusDecius
    Сетевой инженер
    Redmi при подключении к сети через WiFi спокойно проводит раздачу как в режиме usb модема, так и точки доступа. Нужно проверять опытным путём в зависимости от устройства.
    Ответ написан
    Комментировать
  • Как подростку заработать в 14-15 лет?

    xez
    @xez
    TL Junior Roo
    Задача подростка учиться, что бы зарабатывать не 500р в день, а 500р в час хотя бы.
    Ответ написан
    Комментировать
  • Поместится ли RTX 4080 в материнку Asus B450M tuf pro gaming?

    AlexNest
    @AlexNest
    Работаю с Python/Django
    Под "3-мя слотами" имеется ввиду толщина системы охлаждения. На практике это значит, что если вы вставите ее в верхний слот, то во второй ничего вставить не получится - доступ к нему будет преграждать СО.
    Ответ написан
    1 комментарий
  • Сколько ядер процессора хватит для программирования?

    saboteur_kiev
    @saboteur_kiev Куратор тега Железо
    software engineer
    Языки C# и Питон придумали тогда, когда процессор еще был одноядерным.
    Вопрос плохой, неправильный. Никто не знает что вы хотите делать и насколько для вас критично подождать компиляции секунду или 5 секунд.
    Берите удобный для работы. С приятным экраном, с приятной для ВАС клавиатурой.

    А дорогой и мощный ноут можно брать тогда, когда на него заработаешь работой на позиции разработчика, и уже будешь понимать что именно тебе нужно от ноута на этой работе.
    Ответ написан
    Комментировать
  • Как сделать так чтобы все компоненты были красным в Сталкер Зов Припяти?

    vabka
    @vabka
    Токсичный шарпист
    Поменять процессор на такой, который не удовлетворяет системным требованиям.

    Взять материнскую плату без встроенной звуковой.

    Файл подкачки в ноль.

    Оперативки поставить столько, чтобы WinXP еле запускалась
    Ответ написан
    2 комментария
  • Как обойти лимит cимволов в Python TelegramBot?

    Никак. Это установлено в лимитах api телеграма. Пробуйте в коде разделять текст на отрывки меньшей длины и отправлять несколькими сообщениями.
    Ответ написан
    2 комментария
  • Зачем нужны скобки в данном случае?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    ({a, b, c} = {a:1, b:2, c:3 }) // вези меня браузер! Ну если внутри ничего нет то попытаемся


    let {a, b, c} = {a:1, b:2, c:3 } // слева переменная, справа значения которые в нее нужно положить. Да Повелитель!
    Ответ написан
    3 комментария
  • Зачем нужны скобки в данном случае?

    Alexandroppolus
    @Alexandroppolus
    кодир
    Без скобок это будет считаться как "блок из нескольких действий"
    Ответ написан
    Комментировать
  • Зачем нужны скобки в данном случае?

    SagePtr
    @SagePtr
    Еда - это святое
    Потому что в javascript фигурные скобки можно использовать не только для объявления объекта, но и для объединения инструкций в блок. Парсер в этом случае не понимает, что {a, b, c} это именно деструктуризация объекта, а не блок из трёх инструкций a, b и c, потому их заворачивают в скобки, чтобы устранить неоднозначную трактовку.
    Ответ написан
    Комментировать
  • Почему Telegram бот не хочет отправлять сообщение в котором содержатся кнопки?

    Vindicar
    @Vindicar
    RTFM!
    Дай угадаю, реагирует на /start, и всё.
    Сравни с официальным примером и подумай.
    Подумал?

    - get_mood() не отмечено декоратором @bot.message_handler(), бот про эту функцию ничего не знает. Он знает только про welcome().
    - если не заметил, клавиатура должна отправляться вместе с сообщением, параметром reply_markup. Ты же отправляешь сообщение, потом создаёшь клавиатуру, и далее ничего с ней не делаешь.
    Ответ написан
    Комментировать
  • Как правильно клонировать приватный репозиторий github?

    Там же написано

    Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.
    Ответ написан
    Комментировать
  • В чем ошибка при использовании replace()?

    Vindicar
    @Vindicar
    RTFM!
    У объекта "открытый файл" действительно нет метода replace(). Этот метод есть только у строк.
    И ты открываешь файл для записи, тем самым опустошая его содержимое.
    И вызов close() не нужен, так как по выходу из with файл закроется автоматически.

    Тебе сначала надо открыть файл для чтения, прочитать содержимое файла в строку и закрыть файл.
    Потом произвести замену. И учти, что replace() вернёт тебе новую строку, а не изменит исходную.
    Потом открыть файл для записи, записать в него новую строку и закрыть файл.
    Ответ написан
    1 комментарий
  • Допустимо ли использовать h1 внутри aside?

    Ankhena
    @Ankhena Куратор тега HTML
    Нежно люблю верстку
    А пойдемте на MDN и посмотрим что там пишут
    HTML-элемент <aside> представляет собой часть документа, чьё содержимое только косвенно связанно с основным содержимым документа. Чаще всего представлен в виде боковой панели, сносок или меток.

    Как там может оказаться h1?
    Ответ написан
    Комментировать
  • Ошибка при установке composer require barryvdh/laravel-elfinder?

    AmdY
    @AmdY
    PHP и прочие вебштучки
    Там же написано Use the option --with-all-dependencies (-W) Он попробует обновить все связанные пакеты
    Ответ написан
    Комментировать
  • Я сделал 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 комментариев
  • Почему показывает ошибку на хостинге, если на локальном сервере все нормально?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    phpinfo(); Смотрим какие модули включены, особенно обращаем внимание на модули которые выключены, в частности - идем в панель управления хостингом и в настройках пхп включаем mysqli(mysqlnd). Еще посмотреть текущую версию пхп, на более старых юзайте fetch_assoc();
    Ответ написан
    4 комментария
  • Как объединить и сложить JSON PHP?

    romandkoz
    @romandkoz Автор вопроса
    Решил. Вопрос закрыт.

    Полный код

    if($result->num_rows > 0){
        $data = array();
        while ($row = $result->fetch_assoc()){
            $data[] = json_decode($row['data'], true);
        }
    }
    $i = 0;
        foreach ($data as $key => $value) {
           if ($data[$key]['q1'] == 'a1') {
            $i++;
           }
        }
    echo $i;



    Для простоты использования несколько раз в разных местах закинул все в функцию
    Code
    $data = array();
    if($result->num_rows > 0){
        while ($row = $result->fetch_assoc()){
            $data[] = json_decode($row['data'], true);
        }
    }
    function jsonCount($question, $answer){
        global $data;
        $i = 0;
        foreach ($data as $key => $value) {
           if ($data[$key][$question] == $answer) {
            $i++;
           }
        }
    return $i;
    }
    echo jsonCount('q1', 'a1');
    echo '<br>';
    echo jsonCount('q1', 'a2');
    Ответ написан
    3 комментария
  • Почему я должен указывать теги в файле с расширением php?

    @galaxy
    Знаете, как расшифровывается PHP?
    (невелика загадка, у них на сайте в title написано - PHP: Hypertext Preprocessor)

    PHP создавался как шаблонизатор (выражаясь современным языком) для гипертекста, т.е. html. Изначально закладывадось, что писать на нем будут примерно так:
    <html>
    <head>
    <title>PHP is<? if ($a): ?> cool<? else: ?> not cool<? endif; ?></title>
    </head>
    <body>
    <h1><?=$head1 ?></h1>
    </body>
    </html>


    сейчас такое назвали бы говнокодом, и обычно такое разве что генерируют современные шаблонизаторы. Но во времена PHP 3 примерно весь код был в этом стиле.
    Открывающий тег <? на самом деле короче и удобнее, чем <?php, но он, например, конфликтует синтаксически с тем же XML:
    <?xml version="1.0" encoding="UTF-8"?>
    ...

    что нередко ломало, кроме прочего, подсветку синтаксиса, поэтому от него в итоге отказались совсем.
    Ответ написан
    3 комментария
  • Почему я должен указывать теги в файле с расширением php?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Во-первых, не <? , а <?php
    Во-вторых, кроме <?php echo "Текст"; ?> в файле может быть написано
    Чтобы вывести слово "Текст", в РНР надо написать команду echo "Текст";

    которое не будет являться командой, а просто текстом.

    И вот чтобы отличить команду от текста и служат теги РНР
    Ответ написан
    9 комментариев