• Почему перемещение объявления и инициализации переменной на новую строчку кода влияет на результат работы программы?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    В этом коде есть важная ошибка. В циклах for нигде не задано начальное значение переменной i, поэтому она может иметь любое значение, её поведение неопределено. Например, она может выделиться там же, где была выделена предыдущая, поэтому i во втором цикле будет равна последнему значению в предыдущем, то есть 10, даже если в первом цикле повезло попасть на 0.

    Локальные переменные как правило выделяются в стеке, поэтому если между двумя for стоит определение ещё одной переменной, то она, вероятно, выделится на месте i. И поэтому новая переменная i попадёт в другую часть стека, где, если повезёт, будет 0.

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

    Решение простое: надо везде в циклах for указать начальное значение i, тогда всё станет нормально, и перестановка определения count перестанет создавать такие совсем не странные эффекты.
    Ответ написан
    3 комментария
  • Как скачать видео с kinescope?

    @simon100500
    yt-dlp.exe --merge-output-format mp4 https://kinescope.io/Идентификатор_файла/master.m3u8 --referer https://kinescope.io -o "Название_файла"


    Узнать идентификатор можно с помощью F12 на странице видео.

    В папку нужно положить актуальные файлы yt-dlp.exe и ffmpeg.exe.

    Взял здесь.
    Ответ написан
    2 комментария
  • Как урезать свой перфекционизм?

    Запомните для этих случаев одну великую фразу "Ладно это я потом переделаю когда время появится" :)))
    Ответ написан
    7 комментариев
  • Как урезать свой перфекционизм?

    isqua
    @isqua
    Научу HTML, CSS, JS, BEM и Git
    Чтобы перестать делать лучше то, что ещё не сделано до конца, нужно понять одну простую истину: Запущенный проект лучше, чем не запущенный.

    Давайте потренируемся:
    • Что лучше: запущенный проект с несжатыми стилями или незапущенный со сжатыми?
    • Что лучше: не запущенный проект с десятью страницами или запущенный с тремя?
    • Что лучше: запущенный проект c jQuery или не запущенный без jQuery?


    Надеюсь, вы смогли выбрать! Как узнать, что пора запустить проект? (Под запуском я имею в виду «показать людям». Например, если вы решили написать библиотеку, давайте считать «проект запущенным», если вы выложили её на гитхаб) Нужно прикинуть, сколько времени вам надо на разработку и умножить на два. Если получилось больше двух недель, то стоит разбить проект на части и прикинуть так про каждую часть. Соответственно, ставите дедлайны.

    Промежуточные дедлайны помогают успеть к последнему. Старайтесь сначала реализовать основную функциональность, а потом дополнительную. Если не успеете к дедлайну доделать дополнительное — сначала запустите основное, а потом видно будет, надо ли вообще доделывать дополнительное.

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

    Удачи!
    Ответ написан
    4 комментария
  • Какой инструмент выбрать для визуального анализа данных (база MySQL)?

    @Here_and_Now
    Tableau подойдет. Он подключится к базе, а ваш аналитик сможет считать свои параметры уэе в самой программе. Правда определённые типы запросов, которые требуют джоинов, все равно придётся писать в SQL.

    Эксель в чистом виде не потянет, но есть надстройки вроде PowerPivot, которые позволяют использовать его с большими данными.

    Ну и последнее - учить SQL. Аналитику это 100% необходимо, а учить его не так уж и сложно.
    Ответ написан
    2 комментария
  • Введение в Linux

    @Masterkey
    0. Поиграйтесь с software RAID, LVM и шифрованием
    1. Настройте связку веб серверов, допустим nginx apache lighthttp python php ror perl mysql postgres- комбинации на ваш выбор.
    2. Создайте баш скрипты для установки всего что выше вы установили
    3. Поднимите виртуалку и сделайте ей ДДоС, отразите ДДоС на виртуалке
    4. Поднимите почтовый сервер, заспамьте его и отразите атаку

    Смените дистрибутив и повторите все этапы до просветления
    Ответ написан
    Комментировать