"Бот не знает какая неделя соответствует какому дню года? " Да, не знает - как вы думаете какая неделя сейчас идет? - Первая, так как первая неделя месяца - были праздники. Это можно реализовать только зная производственный календарь на годе - наверное для школьного проекта это еще рано. "А также присылать уведомление о следующем уроке. И о расписании на завтра. Это то, чего нет в расписании в pdf, но может быть реализовано и востребовано ЦА."
Спасибо за предложение, если проект взлетит - то это можно будет реализовать.
В данной статье я не хотел касаться технических деталей, кода, а хотел обратить внимание, на то, что при обучении программированию, кроме технических аспектов есть еще и "увлеченность". Чего часто не хватает в наших детях - именно этого и нужно добиваться, что бы обучение приносило удовольствие.
"Призываю - ответьте. Уверен, многим будет интересно узнать, что является исходным источником расписания для бота?" Исходными данными для бота, если это Вы имели в виду - является страница расписания школы: https://1502.mskobr.ru/uchashimsya/raspisanie-kanikuly Разбор которой позволяет получить данные о корпусах и классов, которые расположены в корпусе. От класса получается ссылка на PDF файл, разбор которого и дает данные об уроках.
Попробовал зарегистрироваться на cloud.amvera.ru - требуется хостинг для школьного проекта сына. Вместо "обещанных" 1000 баллов - на счету 120. Минимальная цена - "170 руб./мес. 0.1 ЦПУ, 100 Мб ОЗУ, 0.5 Гб SSD. Подходит для проектов в разработке без существенной нагрузки". Получается что "хватит на несколько месяцев бесплатного использования после окончания бета-теста" - не соответствует действительности. Поправьте меня если это не так.
Да согласен, None выглядит не очень хорошо. Это из-за того, что я пропустил часть кода - у нас часть репозиториев перешла на Git, часть осталась в Mercurial + я добивался того что бы не модифицировать уже имеющиеся скрипты CI/CD.
Полный код выглядит так: default_repo_type: dict = { "repo1": "git", "repo2": "hg", "repo3": "hg", } ........ if repo_type is None: repo_type = default_repo_type.get(name) ........
Как вариант. Но я говорил, что во многих модулях есть использование класса репозиторий repository = Repository("name", "directory") repository.clone() ...... repository.push("new commit")
мне не хотелось бы менять код - я хотел оставить весь остальной код без изменений.
В чем то Вы правы, но позволю возразить, приведя в пример gradle (и т.п.) - когда при сборке приложение, выкачиваются отсутствующие библиотеки. Или в Go - при импорте пакетов вы можете указывать пакеты расположенные в GitHub import ( "fmt" "os" "github.com/digital/ocean/godo" )
Понимаю, что перевод, но без понятия Машинный эпсилон - понимания работы чисел с плавающей точкой, не полное. И не имеет значение какой это язык - Python или Fortran.
Дж. Форсайт. Машинные методы математических вычислений. 1980 год.
Так я и не говорил, что придумал. Решение взято с stackoverflow. Обидно другое, что решение не заинтересовало читателей habr'a. Технические статьи здесь больше не интересны. В 15 году это бы зашло :(
Изначально разработка велась на PowerShell - но руководству он пришелся не по душе и было принято решение все переписать на Python. Я проработал механизм Модулей (библиотек в PowerShell) что позволяло повторно использовать код и ускорить разработку. Но, к сожалению, эта работа не оказалось необходимой в компании.
Да, возможно Вы правы, но .. Механизм условий для задач (Task в терминах Bamboo) работает только с переменными. Т.е. на уровне агента нужно создать переменную типа bamboo_is_win и bamboo_is_linux. А я не имею доступа к администрированию сервера Bamboo и его агентов.
В Bamboo планы состоят из Stages внутри которых содержатся Job'ы (различных видов), которые и выполняют работу.
Для запуска Python скриптов, создается Script Job. В документации сказано: "Script task is flexible enough to allow the possibility to use: the default shells on Linux (/bin/sh) or Windows (cmd.exe)"
Поскольку перед запуском Python необходимо настроить виртуальное окружение для корректной работы, то требуется выполнить activate.bat в Windows и activate в Linux. Плюс требуется передать скрипту параметры Bamboo, который в Windows ограничивается символами %% а в Linux начинается с $. Абсолютно разный синтаксис.
Так что мне не удалось решить это силами самого Bamboo.
А почему нельзя хранить уже разбитые на NGram данные в MS SQL (что позволяет исключить этап загрузки) и выполнять поиск на стороне сервера - внутри stored procedure ?
Я в свое время именно так реализовал нечеткий поиск по справочнику лекарственных средств.
Что-то подобное было у моей бурной молодости, когда я работал «опером» в IT отделе.
Был у нас доступ к безе Госкомстата — реестр зарегистрированных фирм на территории РФ. Как-то подходят ко мне и говорят: «Найди данные на фирму N». Я ищу и ничего не нахожу. Спрашиваю: «Фирма липовая?» — «Нет» — отвечают — «Точно фирма должна быть». Потратил дня два, пока не нашел по подстроке (часть названия выдавала слишком большой объем данных). Начал разбираться, почему не находил по полному названию, и выяснил, что в названии фирмы русская буква 'а', была заменена на английскую 'а'.
Была ли это ошибка оператора Госкомстата или ??? Лихие 90-е.
"Бот не знает какая неделя соответствует какому дню года? "
Да, не знает - как вы думаете какая неделя сейчас идет? - Первая, так как первая неделя месяца - были праздники.
Это можно реализовать только зная производственный календарь на годе - наверное для школьного проекта это еще рано.
"А также присылать уведомление о следующем уроке. И о расписании на завтра. Это то, чего нет в расписании в pdf, но может быть реализовано и востребовано ЦА."
Спасибо за предложение, если проект взлетит - то это можно будет реализовать.
А Happy end'а еще нет - сдача проекта только будет...
В данной статье я не хотел касаться технических деталей, кода, а хотел обратить внимание, на то, что при обучении программированию, кроме технических аспектов есть еще и "увлеченность".
Чего часто не хватает в наших детях - именно этого и нужно добиваться, что бы обучение приносило удовольствие.
"Призываю - ответьте. Уверен, многим будет интересно узнать, что является исходным источником расписания для бота?"
Исходными данными для бота, если это Вы имели в виду - является страница расписания школы: https://1502.mskobr.ru/uchashimsya/raspisanie-kanikuly
Разбор которой позволяет получить данные о корпусах и классов, которые расположены в корпусе.
От класса получается ссылка на PDF файл, разбор которого и дает данные об уроках.
Попробовал зарегистрироваться на cloud.amvera.ru - требуется хостинг для школьного проекта сына.
Вместо "обещанных" 1000 баллов - на счету 120.
Минимальная цена - "170 руб./мес. 0.1 ЦПУ, 100 Мб ОЗУ, 0.5 Гб SSD. Подходит для проектов в разработке без существенной нагрузки".
Получается что "хватит на несколько месяцев бесплатного использования после окончания бета-теста" - не соответствует действительности.
Поправьте меня если это не так.
Да согласен, None выглядит не очень хорошо.
Это из-за того, что я пропустил часть кода - у нас часть репозиториев перешла на Git, часть осталась в Mercurial + я добивался того что бы не модифицировать уже имеющиеся скрипты CI/CD.
Полный код выглядит так:
default_repo_type: dict = {
"repo1": "git",
"repo2": "hg",
"repo3": "hg",
}
........
if repo_type is None:
repo_type = default_repo_type.get(name)
........
Как вариант.
Но я говорил, что во многих модулях есть использование класса репозиторий
repository = Repository("name", "directory")
repository.clone()
......
repository.push("new commit")
мне не хотелось бы менять код - я хотел оставить весь остальной код без изменений.
История повторяется ;)
https://habr.com/ru/post/234723/
В чем то Вы правы, но позволю возразить, приведя в пример gradle (и т.п.) - когда при сборке приложение, выкачиваются отсутствующие библиотеки.
Или в Go - при импорте пакетов вы можете указывать пакеты расположенные в GitHub
import (
"fmt"
"os"
"github.com/digital/ocean/godo"
)
Что бы подчеркнуть, что это Real Python :)
Понимаю, что перевод, но без понятия Машинный эпсилон - понимания работы чисел с плавающей точкой, не полное.
И не имеет значение какой это язык - Python или Fortran.
Дж. Форсайт. Машинные методы математических вычислений. 1980 год.
Я тоже не писатель. Вторая статья с 14 года. А единый скрипт bash/cmd/ps это красивое решение.
Так я и не говорил, что придумал. Решение взято с stackoverflow. Обидно другое, что решение не заинтересовало читателей habr'a. Технические статьи здесь больше не интересны. В 15 году это бы зашло :(
Изначально разработка велась на PowerShell - но руководству он пришелся не по душе и было принято решение все переписать на Python.
Я проработал механизм Модулей (библиотек в PowerShell) что позволяло повторно использовать код и ускорить разработку. Но, к сожалению, эта работа не оказалось необходимой в компании.
Да, возможно Вы правы, но ..
Механизм условий для задач (Task в терминах Bamboo) работает только с переменными.
Т.е. на уровне агента нужно создать переменную типа bamboo_is_win и bamboo_is_linux. А я не имею доступа к администрированию сервера Bamboo и его агентов.
В Bamboo планы состоят из Stages внутри которых содержатся Job'ы (различных видов), которые и выполняют работу.
Для запуска Python скриптов, создается Script Job. В документации сказано: "Script task is flexible enough to allow the possibility to use: the default shells on Linux (/bin/sh) or Windows (cmd.exe)"
Поскольку перед запуском Python необходимо настроить виртуальное окружение для корректной работы, то требуется выполнить activate.bat в Windows и activate в Linux. Плюс требуется передать скрипту параметры Bamboo, который в Windows ограничивается символами %% а в Linux начинается с $. Абсолютно разный синтаксис.
Так что мне не удалось решить это силами самого Bamboo.
А почему нельзя хранить уже разбитые на NGram данные в MS SQL (что позволяет исключить этап загрузки) и выполнять поиск на стороне сервера - внутри stored procedure ?
Я в свое время именно так реализовал нечеткий поиск по справочнику лекарственных средств.
Насколько мне известно длина аномалокариса не превышала 60 см.
https://ru.m.wikipedia.org/wiki/%D0%90%D0%BD%D0%BE%D0%BC%D0%B0%D0%BB%D0%BE%D0%BA%D0%B0%D1%80%D0%B8%D1%81
Был у нас доступ к безе Госкомстата — реестр зарегистрированных фирм на территории РФ. Как-то подходят ко мне и говорят: «Найди данные на фирму N». Я ищу и ничего не нахожу. Спрашиваю: «Фирма липовая?» — «Нет» — отвечают — «Точно фирма должна быть». Потратил дня два, пока не нашел по подстроке (часть названия выдавала слишком большой объем данных). Начал разбираться, почему не находил по полному названию, и выяснил, что в названии фирмы русская буква 'а', была заменена на английскую 'а'.
Была ли это ошибка оператора Госкомстата или ??? Лихие 90-е.