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

    babarun
    @babarun Куратор тега 1С-Битрикс
    Безумный план моих идей в руках больных людей
    1. Пишите функцию которая вычисляет для каждого товара поле SORT, основываясь на его атрибутах, времени года, фазы луны, ретроградности меркурия, закупочных цен дистрибьютеров и пр. Какие то параметры увеличивают значение, какие уменьшают значение SORT, тем самым пессимизируя позицию товара в списке
    2. Вешаете её запуск на крон (например, каждую ночь)
    Ответ написан
    Комментировать
  • Не получается собрать 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 комментариев
  • Что написать на Python?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    1. Начните с утилит командной строки.
      • Освойте argparse, pathlib, yaml-конфиги, sqlite, концепцию пайпов, стандартные потоки ввода-вывода, цветной вывод в терминал.
      • Сделайте тулзу для автоматической разгрузки флешек от фотоаппарата. Пусть забирает все фотки с подключенной флешки, раскидывает по папкам с датами в каталоге хранилища, находит дубли, отделяет RAW'ы, правит EXIF, привязывает гео-метки по треку, индексирует в sqlite, находит похожие (opencv), находит и отделяет серии брекетинга для HDR, делает и восстанавливает бэкапы...
      • Сделайте CLI тулзу, которая качает спутниковые снимки региона и клеит для печати на фотообои или большой формат с рамкой, легендой и масштабной линеечкой.
    2. Попробуйте себя в бэкенде:
      • Освойте Flask.
      • Поиграйтесь с Django (сделайте себе уже сайт с вашими проектами, блогом, гостевой, галереей и админкой на готовых компонентах и дизайне).
      • Сделайте свой:
        • уменьшатель ссылок,
        • хостинг записок через QR-коды,
        • TODO-list,
        • анонимный интернет-чат на web-сокетах,
        • свою интернет-радиостанцию для семьи (с ротацией, новостными и погодными вставками, напоминалками из календаря семеных событий помощью TextToSpeech).
      • Попробуйте прикрутить к сайту донаты, принимать платежи.
      • Сделайте свой сайт, который присылает (можно за денежку) выбранную область карты в виде страниц атласа в масштабе и с легендой на основе рендера OSM и спутниковых снимков.
    3. Поиграйтесь с ML на классических примерах.
      • Научите вашу веб-камеру в ноуте вас узнавать, фотать незнакомые лица перед вашим компом.
      • Научите комп "видеть" вашего кота в комнате, понимать когда ему надо погулять.
      • Сделайте скрипт, который находит на записях видеорегистратора гос-знаки автомобилей и сохраняет в CSV вместе с таймингом по ролику.
    4. Поиграйтесь с MicroPython на NodeMCU (ESP8266).
      • Сделайте и закастомизируйте на нём интернет-wifi-радиоприёмник, или детский MP3-плеер для сказок с RFID-сканером и карточками.
      • Сделайте кормушку для котейки.
      • Робота-охранника или робота теле-присутствия для квартиры...
    5. Попробуйте себя в игрострое, если душа лежит. Я бы смотрел для начала в сторону веб-игр для соц-сетей. Да, придётся окунуться немного во фронтенд, но можно найти подельника, который учится фронту.
      • Можно замутить очередной http://www.milliondollarhomepage.com,
      • огромный скетч-холст для совместного рисования в стиле https://xkcd.com/1110/ на leaflet,
      • или свой граббер и просмотрщик тайлов этого комикса и похожих.
    6. Поделайте ботов для телеги - сейчас, похоже, все этим занимаются. Этот ресурс ломится от тупых вопросов по ним, присоединяйтесь.
      • Можно замутить своего бота для скачивания видоса с ютуба (и не только) по ссылке на основе YoutubeDL.
      • Сделайте бота для чата знакомств с гео-привязкой.
      • Бота, который мониторит RSS и репостит в чат.
      • Бота, который мониторит чат и репостит в RSS через сервер на Flask или статику.
      • Сделайте автоматическую качалку и публиковалку аудиокниг с рутрекера (принять ссылку или название, скачать торрент с нужными тегами, сгенерировать запись в RSS-фид, положить в публикуемый каталог, чтобы книги можно было качать и слушать как обычные подкасты, но еще и по команде из телеги).


    Ну сколько можно ныть и вопрошать "что делать"? Огромная куча всего еще не сделана или сделана через задницу. Сделайте тоже! Пусть получится хорошо или снова через задницу, но это будет ваш опыт!
    Публикуйте свои работы в opensource на github. Изучайте best practice, осваивайте CI/CD, Docker, TDD. Подпишитесь на технологические IT-подкасты. Заведите блокнот для базз-вордов и пишите туда всё что слышите незнакомое. Возьмите в привычку обзорно изучать новые вещи каждый день, каждую неделю.
    Со временем ваш профиль в гитхабе начнёт работать на вас. Крутые конторы постоянно мониторят открытые проекты и хантят разработчиков. Хороших программистов всегда не хватает!
    Дерзайте! Хватит ныть и колебаться! Идите делать!
    Ответ написан
    Комментировать
  • Как написать нейросеть на Python?

    netpastor
    @netpastor
    Python developer
    scale_1200
    Ответ написан
    Комментировать
  • Как узнать разницу между датами в днях?

    DevMan
    @DevMan Куратор тега PHP
    $time1 = new \DateTime('2018-01-01');
    $time2 = new \DateTime('2019-01-01');
    echo $time1->diff($time2)->days;
    Ответ написан
    Комментировать
  • Как набить руку на Python разработку и сисадминистрирование за 2 месяца?

    ri_gilfanov
    @ri_gilfanov
    Web- and desktop-developer
    Веб-разработка и администрирование сетевых ресурсов более востребованы, поэтому я бы рекомендовал изучить следующее:
    • основы и стандартная библиотека Python -- навык лучше прокачивается написанием скриптов и программ для решения неучебных задач. И если основной навык миддла -- это гуглить (полу)готовые решения, то основной навык джуна -- уметь писать свои "велосипеды". Разработчик, который по-максимуму использует и полагается на готовое -- столь же неэффективен, как и предпочитающий использовать готовое по-минимуму;
    • веб-фреймворк Django -- пилите небольшой проект, получаете общие представления о веб-разработке и практику ООП, но о Python этот веб-фреймворк расскажет мало, делает слишком много работы за программиста, а в его исходном коде можно заплутать, так и не поняв как он работает;
    • система контроля версий Git -- обязательно для разработчика и желательно для сисадмина;
    • wsgi-сервер uWSGI (или Gunicorn) -- см. ниже;
    • http-сервер Nginx -- см. ниже;
    • GNU/Linux -- пробуете развернуть проект с использованием предыдущих двух пунктов;
    • веб-фреймворк Flask -- просто пощупайте или сделайте ещё один небольшой веб-проект, по исходникам этого веб-фреймворка проще понять как работают другие веб-фреймворки и как писать поддерживаемый код, к тому же на Flask часто пилят всякие API / бэкенды;

    Настольные приложения и мобильная разработка на Python кажется менее развита и менее востребована, но когда-нибудь можете пощупать:
    • Python GTK+ 3 (или PySide2) -- Python обёртки над GUI инструментариями для разработки настольных приложений;
    • Kivy -- фреймворк преимущественно для мобильной разработки.

    И, если вопрос предполагает поиск работы через пару месяцев, то работодателям обычно нужны те, разработчики, что будут решать их "бизнес-задачи": снижать расходы, повышать доходы и минимизировать риски. Проще говоря, знание математики, алгоритмов и модных технологий могут не пригодится вообще, а вот доведённые до ума проекты расскажут о Вас работодателю намного больше.
    Ответ написан
    4 комментария
  • Как в Python замерить производительность программы?

    deepblack
    @deepblack Куратор тега Python
    https://pypi.org/project/memory-profiler/

    # example.py
    @profile
    def my_func():
        a = [1] * (10 ** 6)
        b = [2] * (2 * 10 ** 7)
        del b
        return a
    
    if __name__ == '__main__':
        my_func()


    $ python -m memory_profiler example.py

    # output:
    
    Line #    Mem usage  Increment   Line Contents
    ==============================================
         3                           @profile
         4      5.97 MB    0.00 MB   def my_func():
         5     13.61 MB    7.64 MB       a = [1] * (10 ** 6)
         6    166.20 MB  152.59 MB       b = [2] * (2 * 10 ** 7)
         7     13.61 MB -152.59 MB       del b
         8     13.61 MB    0.00 MB       return a
    Ответ написан
    1 комментарий
  • Можно ли в MySQL создать запрос по условию?

    Melkij
    @Melkij
    PostgreSQL DBA
    where plan_date_pay < coalesce(date_pay, now())
    Ответ написан
    Комментировать
  • Как установить GitLab только на один поддомен?

    saboteur_kiev
    @saboteur_kiev Куратор тега Ubuntu
    software engineer
    Настройте Server Blocks (в Apache - Virtual Hosts) для gitlab, в котором root будет указывать на gitlab
    а дефолтный - на пустую папку.

    например блок для gitlab, если gitlab установлен в /var/www/gitlab

    http {
      index index.php index.html;
    
      server {
        server_name gitlab.example.com;
        root /var/www/gitlab;
      }
    }


    Почитайте https://www.nginx.com/resources/wiki/start/topics/...
    Ответ написан
    1 комментарий