• Как применить правило парето к самому себе?

    tsarevfs
    @tsarevfs
    C++ developer
    Это не математическое а философское правило.
    Если мы хотим сделать что-то, что требует много разнообразных неформализованных действий, то часть из того что мы делаем оказывается неважным или слабо влияющим на результат.
    К сожалению это чаще всего хорошо работает только задним числом, когда оглядываясь на проделанную работу можно сказать что то же самое можно было сделать меньшими усилиями. Но часто свою продуктивность можно увеличить, сфокусировавшись на важных вещах.
    К формальным процессам это слабо применимо. Нельзя выкинуть 80% операций на сборочном конвейере или в приготовлении бургера в Маке.
    Что касается повторного применения правила, то после первой оптимизации процесс уже становится достаточно формализованным. И правило работает плохо.

    UPD
    Вот геометрическая интерпретация:
    Красный вектор (результат) равен сумме черных (вклад каждой работы). Мы можем выкинуть 80% работ, сохранив большую часть результата. Но второй раз это проделать очевидно не удастся.
    5a44f81a4cc83026124421.png

    Правило говорит о том, что люди ошибаются в оценке полезности работ (или ее вообще нельзя заранее оценить), и если бы у нас была объективная оценка, то можно было не делать большую часть.
    Ответ написан
    4 комментария
  • По каким критериям выбирают процессор?

    edinorog
    @edinorog
    Троллей не кормить!
    По критерию «сколько бабла в кошельке». Это главный критерий. )))))
    Ответ написан
    8 комментариев
  • Математика внеземных цивилизаций?

    Griboks
    @Griboks
    Условно принято, что математика инвариантна. Поэтому большинство посланий в космос является именно математическим.

    Однако, это не совсем так. Математика представляется лишь совокупностью накопленных человечеством знаний. Но это ещё вовсе не означает, что на какой-то другой планете или в другом пространстве 1+1=2. Дело в том, что на данном этапе развития мы можем лишь доказать, что мы не можем доказать, что математика одинакова во всей вселенной.

    Ну и конечно же никто не отменял разные формы: 1+1=2 аналогично a c = e.
    Ответ написан
    3 комментария
  • Alias с произвольным аргументом?

    zolt85
    @zolt85
    Программист
    эм, ну например так
    cm() {
        cmd src:target $1
    }

    Где $1 Ваш третий параметр, а src и target - это первые два
    Ответ написан
    Комментировать
  • Не понимаю где ошибка синтаксиса?

    @trofimovdev
    Python
    Забыли квадратную скобку закрыть
    DICTIONARY[args[1][word][2] -> DICTIONARY[args[1]][word][2]
    Ответ написан
    2 комментария
  • Ошибка импорта при взаимном импортировании?

    adugin
    @adugin Куратор тега Python
    В этой книге раздел "Рекомендация 52. Знайте, как устранить циклические зависимости" (стр. 231).
    Ответ написан
    Комментировать
  • Ошибка импорта при взаимном импортировании?

    longclaps
    @longclaps
    Если лень читать, попробуй силой воображения наполнить смыслом словосочетание "циклическая ссылка".
    Ответ написан
    1 комментарий
  • Как python выбирает значения в операторе or?

    longclaps
    @longclaps
    Логические выражения в питоне (и в большинстве языков) выполняются по сокращенной схеме: слева направо до достижения ясности. В случае оператора "или" ясность наступает на первом true-операнде.
    Ответ написан
    Комментировать
  • Можно ли в паттерне сделать 2 условия?

    longclaps
    @longclaps
    import re
    
    s = "aaacd aaa bbbcd cccdd"
    print(re.findall(r'\b(\w+)(?:cd|dd)\b|\b(\w+)\b', s))
    Ответ написан
    4 комментария
  • Выделение окончаний с помощью регулярных выражений?

    longclaps
    @longclaps
    print(re.sub(r'ing\b', '', "[doing, wing, ingot]"))
    Ответ написан
    Комментировать
  • В каком направлении двигаться "потенциальному" физику?

    vitali1995
    @vitali1995
    В кинетическом.
    b4113fd60b1d5ae5da9508d3340588ca.jpg
    Ответ написан
    Комментировать
  • Стоит ли покупать Apple Pencil?

    garadash
    @garadash
    Задержек нет вообще никаких, особенно с последней моделью iPad Pro, где частота обновления экрана 120 Гц. Вообще в плане ощущения правдоподобности процесса рисования и приближенности его к реальному, как "на бумаге" iPad Pro с Pencil пожалуй самый лучший. Но нужно понимать, что апликухи вы получаете на iOS платформу в любом случае, к примеру от Adobe на iOS приложения достаточно простые по функционалу, уровня десктопного Фотошоп или Иллюстратора вы не получаете. Есть ряд приложений, такие как Procreate, Sketchbook Pro, Graphic, вроде люди творят, есть обзоры, всё серьезно и на уровне. Да и я надеюсь, что вы знаете, что Pencil будет работать только с iPad Pro, с ранними iPad Air и прочими вы рисовать не сможете. Одним словом, я бы лично так сказал; если just for fun, то однозначно iPadPro+Pencil, пожалеть точно не придется однозначно, в принципе альтернативы и нет достойной. Если стоИт вопрос более профессионального соответствия десктопным приложения Adobe и нужна мобильная работа, то тут уж либо используем связку WacomIntuosPro+Ноут(Мак, Виндоуз), либо берем Microsoft Surface 5 планшет со стилусом, ставим нужные десктоп приложения и работаем, но даже на последней Surface есть лаги при ведении стилуса, не сильно заметные, но есть.
    Ответ написан
    Комментировать
  • Какими инструментами вы пользуетесь при разработке на C++?

    vt4a2h
    @vt4a2h Куратор тега C++
    Senior software engineer (C++/Qt/boost)
    1) IDE (QtCretor) -- без комментариев
    2) gcc -- компилятор, gdb -- отладчик; иногда clang/lldb
    3) git и tig (текстовый интерфейс для гита)
    4) valgrind -- в основном профилирование
    5) meld -- дифы
    6) vim -- когда надо что-то мелкое поредактировать на сервере
    7) браузер -- без комметариев
    8) Ну разные консольные утилитки по необходимости, grep, sed, nm...
    9) cppcheck -- статический анализ
    10) Иногда кланговые санитайзеры
    Ответ написан
    Комментировать
  • Для чего читать Таненбаума?

    Jump
    @Jump
    Системный администратор со стажем.
    Для чего читать Таненбаума?
    Для того, чтобы разобраться как работает сеть.

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

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

    По поводу того, нужна ли она для сетевого программирования - решать вам.
    Чтобы стать строителем не обязательно учиться в университете по специальности, можно сразу идти и месить раствор и класть кирпичи, не вникая во всякую далекую от практики муть вроде сопромата, и расчетов прочности конструкций.
    Ответ написан
    15 комментариев
  • Почему нельзя использовать указатель без объявления переменной?

    TrueBers
    @TrueBers
    Гуглю за еду
    А потому что, учите ассемблер, вот почему.
    Разработчика на C/C++ не бывает без базовых знаний ассемблера.
    Можно взглянуть сюда и понять очень многое.

    На 6-й строке ассемблерного кода у вас происходит выделение стекового фрейма. Это та область памяти, где будут храниться ваши локальные переменные, которые вы объявляете в текущей функции, т. е. в нашем случае это int var; int *pvar;. Несмотря на то, что сумма размеров этих переменных на стеке sizeof(int) + sizeof(int*) = 12 для x86_64, выделяется 16 байт согласно пункту 3.2.2 SystemV ABI AMD64, который говорит, что стековый фрейм должен быть выровнен по границе 16 байт. На другой архитектуре здесь может быть другое правило.

    Стек растёт вниз по адресам, т. е. выделение памяти на нём — это просто вычитание (инструкция SUB) из адреса его вершины (регистр RSP) числа, равного тому количеству памяти, которое мы хотим выделить. К вам как бы «всплывает» кусок памяти «откуда-то снизу». Эта память скорее всего использовалась предыдущими вызовами функций и осталась не затёрта! Соответственно, вы должны инициализировать этот поюзаный кем-то кусок под себя.
    Что-то типа аналогии со школы или универа, когда в аудитории есть такая раздвигающаяся доска из двух или трёх частей, видели наверное, когда выдвигаешь одну часть, а другая задвигается. Так вот, когда вы приходите на лекцию, выдвигаете доску, а там, внезапно, предыдущая группа не стёрла за собой свои творения, и вам придётся это стирать и писать вещи, относящиеся к вашему предмету. Естественно, если вы попытаетесь использовать для вашего предмета то, что осталось от предыдущей группы, получится бред в большинстве случаев.

    Когда адрес вашего указателя где-то используется без инициализации (7-я строка асм кода), он возьмёт тот самый мусор, который к нам пришёл при выделении фрейма.
    Получается лотерея: если этот мусор случайно оказывается действующим указателем на память, доступную для записи, ОС не выбрасывает исключение и пишет куда-то в непонятное место, ломая тем самым случайное место в вашей программе. Т. е. вы попадаете на тот случай, когда во фрейме попался до сих пор действующий указатель из мусора предыдущей функции, которая использовала этот кусок фрейма и не затёрла. А когда лотерея проиграна, и попали не на указатель, а на не пойми что, ОС бросает исключение. Поэтому ошибка не всегда проявляется.

    Это всё частный случай реализации языка Си для конкретной архитектуры. Конечно, в терминах стандарта таких вещей не бывает вообще, а объявлено просто как неопределённое поведение, которого нужно избегать.
    Ответ написан
    1 комментарий
  • VSCode вместо IDE для C в Linux?

    @ZZahar
    Если решил проблему - нажми "отметить решением"
    Если есть у кого опыт использования VSC для чего-то,по мимо веба,поделитесь)
    Я тебе больше скажу, я использую его для C++ вместе с VS, а GameDev линуксоиды вместо VS для Unity. Возможности VS Code намного больше чем у многих редакторов и даже некоторых IDE за счёт множества плагинов, которые не кривые и обновляются раз в 2-5 недель(просто большинство плагинов Powered by Microsoft), а также за счёт кучи функционала из коробки которого нету у Sublime Text,Atom,Notepad++.
    Писать буду на сях + python под linux
    Просто установите плагин под Python и под C/C++ и Python и будет вам счастье.

    Имею ввиду настроить компиляцию,чтобы все производилось нажатием пары кнопок,а не ручной линковкой в консоли десятка либ
    Товарищ pastenak ответил.
    автодополнение и еще какой нибудь минимальный набор плюшек IDE.
    Это всё есть из коробки.
    Ответ написан
    2 комментария
  • Зачем нужна сериализация?

    Assargin
    @Assargin
    Перед ответом смотрю наличие ✔ в ваших вопросах
    Сериализация:
    • это обобщённый процесс для структур языка программирования.
    • нужна для любого взаимодействия в системе, выходящего за рамки передачи данных в текущем скрипте: даже если вам кажется, что она не используется - это не так, она всё равно используется под капотом.

    Сериализация гарантирует (для поддерживаемых структур данных), что после процесса сериализации/десериализации вы получите те же самые структуры данных.

    Не будь её, вам бы понадобилось вручную создавать свои протоколы и методы перевода данных в вид, пригодный для передачи куда-либо.
    Ну и, модуль pickle - это встроенная реализация сериализации, но в то же время - одна из многих. Вы можете использовать, например, json, или yaml. Что угодно, что переведёт обычные структуры данных в пригодную для передачи форму (строку, байтовая строка) и вернёт (десериализует) обратно.
    Ответ написан
    7 комментариев
  • Зачем нужна сериализация?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Предположим, есть у вас сложная иерархия классов, в каждом из которых с десяток полей. Некоторые поля ссылаются на объекты других классов или, того хуже, содержат коллекции объектов. При использовании сериализатора, вам достаточно одной строки для сохранения словаря, содержащего объекты из этой иерархии, в файл:
    pickle.dump(some_dict, some_fh)
    А если будете писать код для ручного сохранения всего этого изобилия в файл, то у вас либо получится объёмный, сложный и глючный код, либо ещё одна версия pickle.
    Ответ написан
    Комментировать
  • Пре и пост инкремент в python?

    @SolidMinus
    Если имеется ввиду ++i и i++, то нет

    ++i - это эквивалентно +(+i), что распарсивается в i, в итоге ++i == i -> True

    >>> ++i == i
    True
    >>> +(+i) == ++i
    True


    i++ не поддерживается
    Ответ написан
    7 комментариев
  • Как установить Python библиотеку для определенного интерпретатора?

    Assargin
    @Assargin
    Перед ответом смотрю наличие ✔ в ваших вопросах
    Вы можете изменить путь установки пакетов PIP.
    Посмотрите здесь: https://stackoverflow.com/questions/24174821/how-t...
    Ответ написан
    1 комментарий