• «Heroes of Might and Magic IV»: баг с таверной или классика патчинга
    +3
    «Как известно, в данной серии игр в каждой таверне игрок может нанимать лишь одного нового Героя в неделю.» — ну в третьих это точно не так.
  • Репозиторий youtube-dl удален с GitHub за нарушение DMCA
    0
    Объясните нубу, как можно удалить все форки репозитория, если существует вот такая последовательность команд:

    git clone https://github.com/ytdl-org/youtube-dl
    cd youtube-dl
    rm -Rf .git
    git init
    git add .
    git commit -m "not a youtube-dl fork"
    git push --не-помню-синтаксис https://gitlab.com/someuser/somerepo
  • Коллеги, вы меня огорчаете
    +10
    Самый популярный неправильный ответ: «Это хеш-таблица». Да, это хеш-таблица.

    Самый популярный неправильный ответ: «Вернется ошибка». Да, вернется.

    Самый популярный неправильный ответ: «Я не пользуюсь стандартным логгером». И никто не пользуется, сюрприз! Но почему?

    Самый популярный неправильный ответ: «Можно, если защитить его мьютексом». Я признаю, это плохой вопрос, недостаточно показательный. Но зачем же давать на него хоть и формально правильный, но бесполезный ответ?

    Самый популярный неправильный ответ: «Gorm, вроде, неплох». Конкурирует с ответом «Я всё пишу руками». Я даже согласен с обоими ответами


    После слов «неправильный ответ» вы пишете «Да», «формально правильный, но бесполезный ответ» или «Я даже согласен с обоими ответами». В лучшем случае у вас не лучший стиль написания статей, в худшем — проблемы с логикой…
  • Сайты для обучения программированию: Топ 100
    +1
    Не очень понятно, что может показать опрос, в котором есть сайты, специализирующиеся на разных языках программирования. Питонисты проголосуют за сайты, обучающие питону, джаваскриптеры за сайты, обучающие джаваскрипту. В итоге, оценка получится не просто субъективная, а просто покажет то, кого больше.
  • Главная причина, почему все-таки Linux
    0
    В точку. «Пусть поработают, пусть поучаствуют в отладке, пусть пишут сообщения на форумах и трекерах» — это главная причина, почему все-таки не Linux. Пользователь системы хочет пользоваться системой, решать свои пользовательские задачи, а не отладкой заниматься.
  • Коронавирус: почему надо действовать прямо сейчас
    +7
    Хабр-бинго

    image
  • 56 проектов на Python с открытым исходным кодом
    0
    на ту же тему более старый и богатый на ответы вопрос на SO: stackoverflow.com/questions/261638/how-do-i-protect-python-code
  • 10 хитростей Python, о которых полезно знать
    +1
    10 хитростей Python, о которых полезно знать

    1. Конкатенация строк

    2. Использование генераторов списков

    ...

    10 раз поперхнулся.
  • В самом популярном фрагменте кода за всю историю StackOverflow ошибка! 
    +1
    StackOverflow уже больше десяти лет в обед, могли бы и пораньше сделать выводы о том, что «В ответах на Stack Overflow могут быть ошибки, даже если у них тысячи плюсиков.».
  • Burn Out IT-специалистов: 4 истории от управленца, разработчика, продакта и админа. И рецепт от Southbridge
    0
    Как вчерашний студент обязан высказаться по поводу того что «не бывает выгорания у студентов… у них достаточно стресса, который смывает эту воронку выгорания.» — это какой-то феерический бред. Выгорание как-раз таки от ежедневного стресса, от написания диплома и от того, что сколько бы ты ни учил, тебя в любой момент преподаватель может с говном смешать. От этого руки опускаются еще как.
  • Обучающий канал по математике и датасайнсу dudvstud
    0
    Даже при любви к таким формам написания как «дата-сатанисты», ну не смотрится «датасайнсу» в названии статьи.
  • Путь к проверке типов 4 миллионов строк Python-кода. Часть 3
    0
    Быстрое прототипирование без типов по-прежнему вариант, написали прототип, протестили, а перед мержем добавили аннотаций чтобы удовлетворить mypy и получить зеленую галку от CI.
  • Почему разработчики так любят тёмную тему
    +2
    Как-то легко вы уверовали… Черным по белому на вашей картинке написано очень маленьким шрифтом, а рыжим по черному — довольно большим и с подсветкой. Вы бы при всех прочих равных условиях сравнили.
  • В поисках вдохновения, или Как вытащить себя из Ж
    +2
    Максим Дорофеев «Джедайские техники». Не совсем про то как вытащить себя откуда-либо, а про всякую всячину, которая поможет вам это сделать: не тратить свою энергию на пустяки, концентрироваться на важном, составлять планы, держать почтовый ящик в чистоте и порядке и много чего еще.
  • Несколько подводных камней статической типизации в Python
    0
    А может кто-нибудь объяснить вот этот подводный камень:
    На строчку
    foo = {}

    ругается, что error: Need type annotation for variable, а когда добавляешь очевидный хинт
    foo: typing.Dict = {}

    ругаться перестает.
    Вот зачем
    1) ругаться, если и так понятно, что это dict
    2) допускать подавление ошибки таким топорным способом?
    Вопрос конечно очень простой и рядом не стоит с дженериками, но из-за таких простых вещей инструмент кажется каким-то дико недоработанным и прикасаться к нему вообще не хочется.
  • Паттерны корутин asyncio: за пределами await
    0
    Программируя на питоне с его async/await/asyncio/aiohttp, возвращаться к коллбекам — очень плохая идея.
  • Избавляем игрока от раздражения: правильное использование случайных чисел
    0
    Ваш код реализует как раз-таки стандартный генератор обычных и редких вещей. При шансе выпадения редкой в среднем в 1 из 4 случаев невезучие люди получат 0 из 4, а везучие — 2, 3 или даже 4. Это-то всем геймерам и не нравится. А если есть мешок с тремя обычными и одной редкой, из которого эти вещи достают, то самое большое различие — невезучие люди вытащат редкую вещь последней, а везучие — первой. Намного лучше, правда же?

    Остается вопрос лишь о размере этого мешка. Можно сделать его минимальным, 4 вещи. Тогда игра станет слишком предсказуемой, ведь вы всегда знаете, что редкая вам выпадет не позднее чем через 6 вещей (1ый мешок — редкая, 3 обычных, 2ой мешок — 3 обычных, редкая). Можно сделать чуть побольше. 8 вещей, 6 обычных и 2 редкие. Чуть менее предсказуемо. Таким образом, вы берете власть над рандомизацией в свои руки. Больше размер мешка — больше рандомность. И конечно же, не стоит делать размер мешка в 4 миллиона вещей. Невезучим игрокам их миллион редких вещей будет доставаться в самом конце мешка. Когда они уже бросят эту невезучую для них игру.
  • Мемоизация и каррирование (Python)
    0
    Ваша функция называется factorial, а вычисляет числа Фибоначчи.

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