Задать вопрос
  • Как оптимизировать принятие POST запросов?

    @nrgian
    VPS - это сервер без нежной админовской поддержки.
    Все нужно уметь самому.
  • Почему процессор работает на низкой частоте?

    @nrgian
    Theon,

    То есть даже если выставлено "Максимальная производительность" в электропитании, всё равно может работать на более низкой частоте, чем заявлено? Пока не нагрузишь.

    А ему зачем работать на более высокой частоте, если заняться нечем?
  • Есть ли смысл использовать Pool на одноядерном процессоре?

    @nrgian
    longclaps,
    Если CPU-bound задача - он тупо вреден, если IO-bound - для этого есть asyncio

    Полно смешанных задач.
  • Есть ли смысл использовать Pool на одноядерном процессоре?

    @nrgian
    longclaps,
    Одно ядро на виртуалке.

    Намекаю:
    Вы знаете как именно разделяют ядра системы виртуализации?

    А что где-то пьяный добрый хостер почему-то отдаёт 4 физических ядра по цене одного - эту байку приберегите для голодных, рыщущих в поисках халявы.

    Да запросто. Пока другие заказчики этого хостера неактивны.
    Весь бизнес хостинга, кстати на том и построен, что ресурсов продается больше чем есть, ибо они мало кому нужны одновременно.
    На практике сталкивался (полагаю, попадал на новый сервер, только введенный в эксплутацию и соседей было еще мало; или так повезло с соседями по хостингу), когда реальные ресурсы получше, чем обещанные.
    Это нужно проверять
  • С чего начать изучение Dart?

    @nrgian
    atoro, Читать бесплолезно.
    Ну день вы еще полезно потратите на это - но и все.
    Затем обязательно нужна практика.
  • Есть ли смысл использовать Pool на одноядерном процессоре?

    @nrgian
    longclaps,
    Просто не думая следовать готовым рецептам - это тоже способ жизни.
    Но можно и развиваться.

    Есть замечательная серия статей, что даст вам ликбез по тому, как на самом деле есть multiprocessing, как оно там работает внутри
    https://habr.com/ru/post/196548/

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

    Поставьте эксперименты и убедитесь, что авторы чётких рецептов правы только в определенных случаях.
    Всё нужно проверять.
  • Есть ли смысл использовать Pool на одноядерном процессоре?

    @nrgian
    longclaps,
    ты точно самый умный.

    Ага. Ибо проверил сказанное в своих условиях, в своей задаче

    Я-то знаю, что типичное применение Python внутри VDS, а как так хостер разделил приоритеты процессоров и что там на самом деле означают 4 ядра тарифного плана - это еще неизвестно.

    Проверяйте, сэр, а не тупо следуйте нагугленным инструкциям.
    И для вас откроется замечательный новый мир.

    Что до VDS, то бывают и обратные сюрпризы, связанные с большей производительностью, чем ты мог бы её ожидать, исходя из прочитанного.

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

    Так же встречается ситуация (основанная на когнитивном искажении человеческого разума), что когда у нас нет способа решения задачи - мы выбираем какой-то способ, что якобы подходит. И за уши притягиваем его на новую задачу.

    И если не наблюдается страшных проблем, то считаем, что там можно и закрепляем этот опыт в документации/статьях. Но ведь глубокого исследования не было произведено! А там сюрприз закопан.

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

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

    А можете этого и не делать.
    В конце концов, высочайшая производительность в многопроцессорных средах - это не то, ради чего выбирают Python.
  • Какой язык программирования или даже стек технологий наиболее дружелюбен к легаси?

    @nrgian
    Дмитрий Купчинский,
    Разница в версиях языка - это как самая поверхностная точка для понимания, естественно при разработке мы говорим о сопутствующих технологиях, в том числе и о библиотеках, все это вместе инструменты разработчика

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

    Версия языка - не важна.
    Бояться не нужно.
    Языки новые осваиваются за неделю (кроме первого, тот дольше). А уж очередная версия языка - тем более быстро.

    Важны парадигмы, принципы, концепции, паттерны. Важно их понимать.
    А язык - это ерунда, языки похожи.

    Сложно усваиваются парадигмы, принципы, концепции, паттерны.
    Но они из языка в язык переходят. Освоите концепции/паттерны/парадигмы на одном языке - легко адаптируйтесь к другому.
  • Как понять, что стажировка по java плохая, и что с нее стоит уйти?

    @nrgian
    Андрей Пронин,
    Откуда именно такие цифры?

    Статистика-с, сэр.
    Индустрия существует уже очень давно.
    Первые научные трактаты, анализирующие работу программистов, появились еще в конце 1960-х годов.
    На сегодня подобных исследований/замеров - полно.
    Понятно, что цифра 80 это - условная.

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

    Исследования по ошибкам в программах - это очень большой раздел человеческих познаний.
    Человечество уже довольно много об этом знает и много чего напридумывало связи с этим.
    Начните хотя бы с "Мифический человеко-месяц", Ф. Брукса. Это тонкая книжка, не пожалейте времени. Уж столько десятилетий прошло - а выводы, сделанные автором являются актуальными и поныне.

    Есть и забавные методы. Например, существует такая: искусственно добавляем в программу ошибки, потом другой человек отлаживает.
    И по тому сколько он выявил ошибок (и искусственно внедренных и существовавших в программе изначально) мы делаем выводы - а сколько еще ошибок осталось.
    Эта метода реально применялась на практике.
  • Есть ли смысл использовать Pool на одноядерном процессоре?

    @nrgian
    longclaps,
    Q: сколько будет дважды два?
    A: Мало ли чего пишут про сферическое в вакууме в таблице умножения.

    То есть вы не считаете самостоятельную проверку убедительной для вас?
    Но при этом считаете убедительным то, что кто-то там написал в интернете?
    Ах, нет... вы же не считаете убедительным то, что кто-то там написал в интернете?
    Или все же считаете?
    Или не считаете?
    Может, надежнее проверить самому? Тем более, что это несложно.
  • Как сделать интерфейс для иерархии типов?

    @nrgian
    Сергей Тихонов,
    Если обработка разных видов интерфейса одинаковая, то не делал бы абсолютно ничего для поддержки разных типов. Всё сводится к утиной типизации

    В Go это означает, что у вас одинаковый интерфейс у разных структур.
    Вы например, можете единожды указать этот интерфейс во входящих параметрах функции - и далее никакого кастинга больше делать не нужно. Это и будет полной аналогией того, что вы описали.
    Как-то так:
    func MyFunc(a MyDarlingInterface) {
    
        a.DoIt()
    
    }


    А конкретно это из вашего примера:

    func Write(w io.Writer) {
      w.Write([]byte("X"))
      fmt.Printf("Written 'X'\n")
    }
    
    func ReadMany(list []io.Reader) {
      for _, r := range(list) {
        Read(r)
      }
    }


    можно сделать через "...":

    func MyFunc(a ...MyDarlingInterface) {
       for _, v:= range a {
          v.DoIt()
       }
    }


    и вызывать как

    MyFunc(SingleParameter...)

    или как
    MyFunc(ArrayParameter)
  • Как собрать NAS c минимальным энергопотреблением?

    @nrgian
    i3 (причем обязательно с индексом U) - 15-18 ватт только на один процессор.
  • Unity как сделать защиту от изменения файлов игры?

    @nrgian
    Сергей Иванов,
    кряк

    Для сетевой игры не нужно никакой защиты на клиенте - сервер проверять должен у себя.

    Для несетевой игры - для начала нужно выделить ключевые моменты, которые нужно обязательно защитить.
    Этих моментов будет немного.
  • Как научиться понимать английский язык на слух? Это вообще возможно?

    @nrgian
    timur_sh,
    Можно еще попробовать разбирать слова песен на слух, вы же слушаете музыку, наверное и на английском тоже.

    А вот не стоит.
    1) Там очень специальный неправильный язык. Так же как и наших песнях.
    2) Начнете понимать англоязычные песни - поймете насколько они банальны (как и наши), придется переключаться на франзцускую музыки или т.п. Чтобы просто слышать красивые слова, не вникая в их банальный смысл ;)
  • Unity как сделать защиту от изменения файлов игры?

    @nrgian
    Сергей Иванов,
    файлы .dll можно декомпилировать даже при установленной защите

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

    @nrgian
    Дмитрий Купчинский,
    Суть в том с каким инструментом проще практиковать на рынке, чтобы не погрязнуть в легаси.

    Если вы хотите чтобы люди вас понимали - правильно задавайте вопрос.
    Тут дело не в инструменте.
    Когда вы приходите устраиваться на работу - вам задают вопросы, но и вы можете задать фирме вопросы.
    Узнаете о возможном старом коде заранее - и не выберите эту фирму.
    Делов то
  • Как сделать интерфейс для иерархии типов?

    @nrgian
    Сергей Тихонов,
    я спросил об том как бы внутри кода вы обрабатывали разнородные параметры?
    в Go предлагается ветвление - одна ветка, один вид интерфейса обрабатывает.
    что бы вы сделали в Python?
  • Unity как сделать защиту от изменения файлов игры?

    @nrgian
    Сергей Иванов,
    для защиты изменения файлов логично не?

    Защиты от чего именно?
    Дистрибутив - уже защищен и сам по себе.
  • Какие выбрать Windows и Microsoft Office для ИП?

    @nrgian
    Tomasina,
    LibreOffice не годится - даже несложное форматирование слетает после пары редактирований разными пользователями.

    Ничего там не слетает.
    Слетает только если 2 условия: неродной формат использовать (от MS Office) плюс обязательно файл должен быть сложным.

    Простые файлы от MS Offce и родные файлы - LibreOffice обрабатывает нормально уже более 10 лет как.