Профиль пользователя заблокирован сроком с 20 сентября 2021 г. и навсегда по причине: систематические нарушения правил сервиса
  • Хватит ли Macbook Pro 2012 для фронтенда?

    @Asokr
    Странно, но у меня, там где фигма, мой i7 7500 и 8 гигов оперативки не справляются, если параллельно открыть фотошоп, или если ноут не перезагружал дня 4-5...
    Проц тут не проблема, но только фигма съедает 2-3 гб оперы, фотошоп хочет около 2, + пару вкладок хрома около 1500мб, где остальное не известно, но факт, что нужно 16 гигов ))
    Ответ написан
    1 комментарий
  • Методы и функции в C#?

    @majstar_Zubr
    C++, C#, gamedev
    Есть термины функция, процедура, метод в рамках парадигм программирования, но терминология в C# иная.

    В C# нет функций и процедур, есть только методы и делегаты.
    Лямбда-выражения, в зависимости от контекста, "под капотом" приводятся к анонимным делегатам с телом или к Func, Predicate, Action.
    Все утыкается в объектную модель, которую поддерживает абстрактная машина языка C#.
    Единицей трансляции является класс, и свободных функций в namespace быть не может, так же как и указателей на функцию в принципе - вместо указателей на функцию в C# используются делегаты. Делегат реализован как абстрактный класс, это позволило реализовать типобезопасные ссылки на методы, которые можно складывать и вычитать, позволило удобно реализовать асинхронность.

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

    В C# нет понятия функции как объекта, функцию нельзя просто так создать. Вообще можно, но прежде чем её использовать, её нужно будет скомпилировать, но она будет в любом случае в каком-то классе, и она будет методом этого класса; и чтобы методы вызвать, сначала надо получить ссылку на экземпляр класса.
    Ответ написан
    Комментировать
  • В чем разница multithreading, multiprocessing и асинхронности?

    @majstar_Zubr
    C++, C#, gamedev
    Multiprocessing и multithreading относятся к стратегии управления разделяемыми ресурсами и оптимизации простоев между задачами, а Asynchronous invocation к паттернам проектирования.

    Многопроцессный подход к решению позволяет скинуть обработку доступа к разделяемым ресурсам на ОС, а многопоточный позволяет самому разработчику более гибко управлять этим разделением.

    Всегда хочется писать однопоточный код, который компонуется в разные исполняемые файлы, которые можно запустить как отдельные процессы. Но проблема кроется на системном уровне - с точки зрения скорости исполнения работы процессором, задержки и ожидания передачи пакетов по сети или нахождения и чтения файла просто громадные. За то время, как решение одной задачи ждёт ответа базы данных, нерационально тратить время процессора на холостую работу активного ожидания, когда все что делает процесс, это по десять раз в мс спрашивает у ОС, пришел ли ответ, пришел ли ответ, пришел ли ответ... Пройдет много времени пока ОС поймет, что процесс ничего полезного не делает, и пока переключит контекст, выгрузит один процесс, загрузит другой, может прийти ответ для процесса, который его ждал. Но теперь придется ждать, пока ОС не загрузит его.
    Другая проблема процессного подхода - захват ресурса. Применяя многопоточность можно экономить на том, что обращаться к системным ресурсам будет процесс, и потоки могут просто владеть ресурсом сообща, и как будет разделяться это владение решает сам разработчик. Более того, задача чтения из общей памяти более проста, если это происходит в рамках одного процесса, а межпроцессные взаимодействия всегда более тяжеловесные.

    Асинхронный вызов имеет отношение к высокоуровневым языкам. При синхронном вызове метода с точки зрения вызывающего кода происходит ожидание результата метода. При асинхронном вызове вместо ожидания происходит почти сразу переход на исполнение следующих инструкций, после вызова асинхронного метода.
    В рамках асинхронного вызова также могут быть объявлены фьючерсы и промисы, которые по факту разделяют по времени выделение памяти, инициализацию и присвоение возвращаемого асинхронным методом значения.

    То, как по факту будет реализован асинхронный вызов - представляет ли он ожидание исполнения транзакции, или получения сообщения от брокера, ожидание получения результата от другого процесса или задачи, которая решается в том же процессе, но в другом потоке- это уже зависит от разработчика р выбранных проектных решений.
    Ответ написан
    Комментировать
  • Как генерируется hashcode по умолчанию, то есть в классе object, в C#?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    /// <summary>Служит хэш-функцией по умолчанию.</summary>
        /// <returns>Хэш-код для текущего объекта.</returns>
        [__DynamicallyInvokable]
        public virtual int GetHashCode()
        {
          return RuntimeHelpers.GetHashCode(this);
        }

    https://stackoverflow.com/questions/720177/default...

    Она же вызывает вот этот нативный код.

    FCIMPL1(INT32, ObjectNative::GetHashCode, Object* obj) {  
        CONTRACTL  
        {  
            THROWS;  
            DISABLED(GC_NOTRIGGER);  
            INJECT_FAULT(FCThrow(kOutOfMemoryException););  
            MODE_COOPERATIVE;  
            SO_TOLERANT;  
        }  
        CONTRACTL_END;  
    
        VALIDATEOBJECTREF(obj);  
    
        DWORD idx = 0;  
    
        if (obj == 0)  
            return 0;  
    
        OBJECTREF objRef(obj);  
    
        HELPER_METHOD_FRAME_BEGIN_RET_1(objRef);        // Set up a frame  
    
        idx = GetHashCodeEx(OBJECTREFToObject(objRef));  
    
        HELPER_METHOD_FRAME_END();  
    
        return idx;  
    }  
    FCIMPLEND


    Еще посмотрите эту статью.
    see Knuth Vol 2 p16 (3.2.1.2 Theorem A)

    https://habr.com/ru/post/188038/

    https://codingsight.com/the-origin-of-gethashcode-...
    Ответ написан
    Комментировать
  • Как удалить с концами phpstorm в убунту, чтоб после новой установки активировать пробный период?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    можно
    это и есть награда за усидчивость и сообразительность

    а для хитрых с вопросами на тостере - только платить
    Ответ написан
    Комментировать
  • На что стоит смотреть свою внимание ри выборе пк для игр?

    Stalker_RED
    @Stalker_RED
    ryzen 5 2600 чуток дешевле, чем 9400F но при этом почти вдвое производительнее.
    а ryzen 5 3600 чуток дороже, но еще шустрее.
    Разве что с виртуализацией у интела получше, но если вы не разрабатываете под андроид, или типа того, то я бы рекомендовал ryzen, и видяху 1660 super, если укладывается в бюджет. Взять память ballistix, материнку на B450, разогнать немножко, и радоваться.

    ssd 120Gb для программирования наверное хватит, а вот игрушкам на нем будет тесно. Лайфхак: подключить обычный HDD, и симлинками перебрасывать на ssd только то, во что играешься прямо сейчас.

    16 гигов оперативки - норм.
    Ответ написан
    Комментировать
  • Как правильно вывести текст из генерации?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Приложите голову к монитору и держите минут 30. Буду считывать исходники. Долго, согласен, но у вас мыслительный сигнал какой-то слабый.
    Ответ написан
    1 комментарий
  • Зачем нужен JMS (RabbitMQ и т.п.) если есть Apache Kafka?

    inoise
    @inoise
    Solution Architect, AWS Certified, Serverless
    Это принципиально разные продукты - одно очереди сообщений, а другое стриминг. В Кафке нет понятия сообщений, вернее из реализация там абстрактна. В Кафке оперируют байтами информации. К тому же в Кафке плохо с роутингом, который есть в других брокерах.

    Так что лучше или хуже непохожими сравнивать исключительно в рамках выбора решения под конкретную задачу
    Ответ написан
    5 комментариев
  • Random как сгенерировать случайные числа но с определенной вероятностью выпадения?

    Stalker_RED
    @Stalker_RED
    dmshar все правильно вам написал, разбивайте число из диапазон 1..100 на интервалы

    function foo() {
      let random = Math.floor(Math.random() * 100) + 1; // 1..100
      switch (true) {
        case random < 36: return 1 // 35%
        case random < 61: return 2 // 25%
        case random < 86: return 3 // 25%
        case random < 96: return 4 // 10%
        default: return 5
      }
    }


    Тест: запустим 10 млн раз и посмотрим распределение
    Ответ написан
    Комментировать
  • Random как сгенерировать случайные числа но с определенной вероятностью выпадения?

    @dmshar
    Эта элементарная задача называется "генерирование дискретных случайных величин с заданным законом распределения". Решается классическим образом.
    Сначала разбиваем наш диапазон от 1 до 100 на следующие интервалы:
    1-35,36-60,61-85,86-95,96-100.
    Затем генерируем число, равномерно распределенное в диапазоне от 1 до 100. Номер интервала, в который это число попадает дает ваши генерируемые цифры - от 1 до 5, причем распределены они в точности по вашей таблице распределения.
    Ответ написан
    11 комментариев
  • Как можно распознать цифры с помощью tesseract?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    У вас такие цифры - что можно и без тессеракта обойтись
    Если вы можете, то дайте, пожалуйста, ссылку на статью или любой ресурс с этой информацией или расскажите сами, если есть время и желание

    Простая логика. Нарезаете изображение на одинаковые прямоугольники и тыкаете по нескольким ключевым координатам, специфичным для цифр
    5ef48501d4782332889281.png
    В точке "1" черный цвет будет у 1, 3 и 0, в "2" - у 3, 4, и 1 и т.п.
    и составляете условие - если в "1" - черный, в "2" - черный, в "3" - белый... - то найденная цифра - "3"
    если в в "1" - черный, в "2" - белый, в "3" - белый... - то найденная цифра - "0"
    если в в "1" - черный, в "2" - черный, в "3" - черный... - то найденная цифра - "1"
    и т.п.
    Ответ написан
    2 комментария
  • Существует ли линукс дистрибутив полностью из псевдографики?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Любой без гуи
    Ответ написан
    Комментировать
  • Существует ли линукс дистрибутив полностью из псевдографики?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Рабочий стол подразумевает собой графический интерфейс.
    Ставьте просто серверный линукс, без GUI и будет вам псевдографика.
    Ответ написан
    Комментировать
  • Как в mysql найти запись по номеру телефона?

    myks92
    @myks92
    Нашёл решение — пометь вопрос ответом!
    В БД имеет смысл хранить просто строку, без дополнительных символов. А уже на клиенте отображать формат. Однако не всегда это требуется. Но я бы предпочёл хранить без пробелов и символов. Особенно, если используется поиск по телефону. Единый и простой формат в базе лучший вариант.
    Ответ написан
    Комментировать
  • Как в mysql найти запись по номеру телефона?

    @dimoff66
    Кратко о себе: Я есть
    Возможно
    LIKE %2%2%2%2%2%2%2%2%2%2%2%2%, но если записей много, то стоит сохранить номер в виде 2222222222, возможно в дополнительном поле, если формат основного нужно оставить. Тогда поиск будет быстрым, при индексации моментальным.
    Ответ написан
    Комментировать
  • Vue, поиск города в json?

    coderisimo
    @coderisimo
    Например - ТЫЦ
    Посмотрите там Asynchronous select Идея в том, чтобы ничего не грузить заранее, а просто обращаться к серверу, который и будет возвращать набор подходящий под критерии поиска.
    Это стандартная практика. Каждый раз грузить весь JSON , даже если он не нужен смысла нет
    Ответ написан
    Комментировать
  • C# для Android и IOS?

    @iMaximus
    Не подходит, Kotlin для Android, Swift для iOS если уже очень хочется погрузится в кросплатформенное уг это React Native. Xamarian крайне не советую несколько знакомых разработчиков которые на нем писали плевались. Тот же Промсвязь банк переписывал приложение с этого говна на нативное.
    Ответ написан
    8 комментариев
  • C# для Android и IOS?

    @elektrovenick
    Бубочка
    Судя по отмеченному решению, вам хочется услышать подтверждения своим словам.
    Но начинать изучать шарп ради мобильной разработки - звучит весьма странно, особенно когда вакансии только уменьшаются. Обычно проще подтянуть замарин к знанию шарпа, нежели с нуля учить мало кому нужную технологию. Однако даже если рассматривать замаринщика, то ему всё равно нужны минимальные знания натива (свифт, обжс/котлин, джава).

    Раз уж ты всё равно фронтендер, глянь в сторону флаттера, переход будет мягким, да и он реально становится заменой всех кроссплатформенных решений, спрос растёт как на дрожжах.

    А чтоб разрабатывать под иос, всё равно нужна техника эпл (или хак) в любом случае. А если её нет, может проще отложить этот момент на потом? Если есть винда и андроид, проще стартовать в андроиде/флаттере.
    Ответ написан
    Комментировать
  • Изучение machine learning на Python. Можно совет?

    szafranji
    @szafranji
    wro
    Начать изучать математику. Если траблы с матаном - лучше не лезть
    Ответ написан
    Комментировать