Задать вопрос
тыц goo.gl is dead D;

If we have data, let’s look at data. If all we have are opinions, let’s go with mine
Jim Barksdale,

https://toster.ru/q/111179#answer_334881

шар для гадания

Яндекс ШРИ монга

https://toster.ru/q/453975#answer_1074088
https://toster.ru/q/621338#answer_1373106
https://toster.ru/q/623143#answer_1376173

WSD в Новосибирске // БЭМ — норм, Вадим Макеев
https://www.youtube.com/watch?v=RM55tkWfHDc

http2 koseg
https://www.youtube.com/watch?v=rQDd5kCwDj8

Достижения

Все достижения (361)

Наибольший вклад в теги

Все теги (709)

Лучшие ответы пользователя

Все ответы (5176)
  • Как выбрать несуществующий ID?

    sim3x
    @sim3x
    https://medium.com/@emerson_lackey/postgres-random...

    https://wiki.postgresql.org/wiki/Pseudo_encrypt

    pseudo_encrypt(int) can be used as a pseudo-random generator of unique values. It produces an integer output that is uniquely associated to its integer input (by a mathematical permutation), but looks random at the same time, with zero collision. This is useful to communicate numbers generated sequentially without revealing their ordinal position in the sequence (for ticket numbers, URLs shorteners, promo codes...)
    Ответ написан
    Комментировать
  • Какие есть методики и ориентиры для подсчета количества программо-часов на проект?

    sim3x
    @sim3x
    метод Бобука
    Часто спрашивают, решил один раз написать. Срок выполнения любого проекта по Бобуку-Бацеку, формула от 2008 года 5c93711a9980a977426851.png

    https://twitter.com/bobuk/status/636252417089212416

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

    Повторяете до бесконечности
    Ответ написан
    1 комментарий
  • Как уменьшить тысячи картинок во всех подпапках?

    sim3x
    @sim3x
    Нужны пакеты
    sudo apt-get install jpegoptim imagemagick optipng
    mogrify

    бекапимся
    все будет происходить на месте - файлы заменяются
    начиная с текущей папки и далее в глубину

    Оптимизируем jpeg
    find . -type f \( -name "*.jpeg" -or -name "*.jpg" \) -exec mogrify -resize x100 -quality 90 {} \; -exec jpegoptim -o --strip-all {} \;


    Оптимизируем png
    find . -type f -name "*.png" -exec mogrify -resize x100 {} \; -exec optipng -o1 {} \;


    mogrify -resize ШИРИНАxВЫСОТА -quality КАЧЕСТВО
    если высоты(ширины) нет, то изменяем пропорционально

    optipng -o9 file.png
    максимальное количество проходов по изображению, очень эффективно для запущенных случаев, очень-очень долго
    пару минут на файл 1500х1500

    optipng -o5 file.png
    просто долго

    # код предоставляется как есть

    # почему оптипнг - он офигительный

    # для других типов картинок меняем find и ищем каким софтом их оптимизируют
    Также можно сконвертить картинки в пнг-жпг, но часто это как-то нужно синхронизировать с бд, и тут нет простого пути
    Ответ написан
    12 комментариев
  • Не получается собрать Python 3.7 из официальных исходников?

    sim3x
    @sim3x
    Гайд
    Как установить питон, требуемой версии одному пользователю в домашнюю директорию

    Вам не нужно менять системный питон
    Никогда

    Запускать так python3.7 -v
    Не так python3 -v
    Почему? which python3.7; which python3

    Что требуется поставить для сборки в убунтах 16.хх-18.хх
    apt-get install -y \
      build-essential git libexpat1-dev libssl-dev zlib1g-dev \
      libncurses5-dev libbz2-dev liblzma-dev \
      libsqlite3-dev libffi-dev\
      libffi-dev tcl-dev linux-headers-generic libgdbm-dev \
      libreadline-dev tk-dev \
      libdb-dev \
      libmpdec-dev \
      libncursesw5-dev




    Получаем исходники и чекаутим нужную версию
    cd /tmp
    git clone https://github.com/python/cpython.git
    cd cpython
    git checkout 3.7


    Обращаем внимание
    Не --prefix=$HOME/.local/bin а --prefix=$HOME/.localИнсталлер создаст такие диры ${prefix}/{bin,include,lib,share}
    Сделайте tree .local до и после make install, тогда не возникнет вопросов, что поставил питон

    Перед любой операцией - требуется читать ман!
    ./configure --help
    Например если предполагается собирать разные варианты питона --with-lto может сильно ускорить процесс

    -j4 повесит сборку на 4 ядра, если они у вас конечно есть

    ./configure --prefix=$HOME/.local --enable-optimizations
    make -j4
    make install


    инсталлер формирует такую структуру для питона
    Перед установкой, желательно руками удалить все. Не директории. В данной директории может быть много софта
    .local
    ├── bin
    │   ├── 2to3 -> 2to3-3.7
    │   ├── 2to3-3.7
    │   ├── easy_install-3.7
    │   ├── idle3 -> idle3.7
    │   ├── idle3.7
    │   ├── pip3
    │   ├── pip3.7
    │   ├── pydoc3 -> pydoc3.7
    │   ├── pydoc3.7
    │   ├── python3 -> python3.7
    │   ├── python3.7
    │   ├── python3.7-config -> python3.7m-config
    │   ├── python3.7m
    │   ├── python3.7m-config
    │   ├── python3-config -> python3.7-config
    │   ├── pyvenv -> pyvenv-3.7
    │   └── pyvenv-3.7
    ├── include
    │   └── python3.7m
    ├── lib
    │   ├── libpython3.7m.a
    │   ├── pkgconfig
    │   └── python3.7
    │   └── man


    Если после инстала и сборки which python3.7не дает результата - проверьте наличие в PATH ~./local/bin
    $ grep "$HOME/.local/bin:" <<< "$PATH"  
    /home/sim3x/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:
    Ответ написан
    7 комментариев

Лучшие вопросы пользователя

Все вопросы (9)