• Как можно упростить код?

    @lega
    Для "разбора" текста удобно использовать re (regex)
    >>> re.search(r'([\d\.]+\.)(\d+)-[\d\.]+\.(\d+)$', '127.0.0.10-127.0.0.50').groups()
    ('127.0.0.', '10', '50')

    Для "массивных" сетевых задач asyncio - можете отправить 10тыс запросов за раз, вместо проверки в цикле.
    Ответ написан
    Комментировать
  • PostgreSQL, как делать ссылки на другие поля?

    @lega
    колонку-массив либо полнотекстовый индекс на content, "связывание один ко многим" - оверхед
    Ответ написан
    Комментировать
  • Как сделать динамический перевод потока с одной БД на другую?

    @lega
    Как вам переключение поможет от DDOS?

    сделайте балансировку на оба сервера, пусть оба работают, если один загнется все запросы пойдут на другой, базу в реплику
    Ответ написан
    1 комментарий
  • Агрегация большого кол-ва записей из БД?

    @lega
    Я уже на тостере пару раз описывал одно из решений (с расчетом на прирост до 2000 млн записей в день), в кратце:
    * таблицы на свалку, нужно паковать чанками (например чанк - 1 час/день данных в разрезе раздела) с индексами в доль разрезов, можно использовать nosql (mongodb с шардингом, хотя вам и одного сервера наверно хватит)
    * чанки паковать (экономия до 95% места)
    * далее после завершения периодов запускаются задачи которые наполняют "кеш" - строят отчеты во всех разрезах + промежуточные результаты, что-бы пользователю выдавать результат моментально когда он кликает по интерфейсу.

    я делал решение на питоне, там где расчет занимал длительное время - делал с++ вставки, в результате расчет выполнялся в ~ х70 раз быстрее, и питон прокачивал более 10млн записей в сек. в один поток с учетом выкачивания из БД
    Ответ написан
    Комментировать
  • Mongo заполнила данными диск и упала, как выгрузить ее данные?

    @lega
    * Запустить в режиме --smallfile, где монга не резерирует место
    * Попробуйте пеерзагрузить сервер (старая версия монги создавала много временных файлов)
    * Расширить диск
    * Выкачать файлы монги по сети и запустить на той же версии на другой машине
    Ответ написан
    Комментировать
  • Стоит ли дальше изучать фреймворки?

    @lega
    Как только ставлю перед собой задачу написать например фильтр поиска для товаров - просто туплю в экран и не могу сделать ничего
    Разбивайте такие задачи на подзадачи, если подзадача "не подъемная", то разбивайте её пока не понятно будет как решать, например:
    "фильтр поиска" -> видимо нужно поле ввода (например фильтр по цене), и в выводимый результат должен быть зафильтрован, скорей всего на клиенте нет всех товаров, значит фильтровать должен сервер, т.е. фильтр нужно отправить на сервер, отсюда задачи:
    * добавить поле "фильтр по цене"
    * взять значение из поля и добавить в запрос который улетает на сервер
    * на сервере получить этот "фильтр"
    * добавить этот фильтр в запрос к данным (БД)
    отправка результата уже есть, поэтому там скорее всего ничего менять не надо

    Если конкретная задача не разбивается, то можно её погуглить, если ничего не нашли то задать вопрос на тематическом сайте.
    PS: Если ваш фрейиворк не позволяет делать простые вещи просто, то на свалку его.

    Так же очень полезно написать свой фреймворк, таким образом вы будете знать как устроены большинство других фреймвлоков.
    Ответ написан
    Комментировать
  • Разрешено ли использовать C функции в C++?

    @lega
    Да, можно, есть даже стиль где в с++ не используются с++ либы, только от с.
    Ответ написан
  • Как задеплоить несколько проектов на uWSGI?

    @lega
    > python3.7 -m venv env
    > ./env/bin/pip3.7 install flask
    > ./env/bin/pip3.7 install uwsgi
    > ./env/bin/uwsgi --python-version 
    3.7.0
    
    > uwsgi --file app.py -s :80
    ['.', '', '/usr/lib/python35.zip', '/usr/lib/python3.5', '/usr/lib/python3.5/plat-x86_64-linux-gnu', '/usr/lib/python3.5/lib-dynload', '/usr/local/lib/python3.5/dist-packages', '/usr/lib/python3/dist-packages']
    
    > ./env/bin/uwsgi --file app.py -s :80
    ['.', '', '/usr/local/lib/python37.zip', '/usr/local/lib/python3.7', '/usr/local/lib/python3.7/lib-dynload', '/tmp/env/lib/python3.7/site-packages']
    Ответ написан
  • Не получается собрать Python 3.7 из официальных исходников?

    @lega
    Инструкция как в несколько шагов установить и собрать deb пакет питона, который в дальнейшем можно без проблем ставить на другие хосты. + можно будет удалить/обновить через dpkg.
    Актуальна для всех версий питона и Ubuntu 12/14/16 (просто подставляете правильный линк).

    Так же можете использовать любой питон через докер:
    docker run -it python:3.7
    Ответ написан
    Комментировать
  • Python md5 hash не совпадает?

    @lega
    Ваш код делает разные вещи, сделайте аналогичный алгоритм - будет одинаковый результат, md5 не причем
    Ответ написан
    Комментировать
  • Будут ли затронуты карты Payoneer новым законопроектом?

    @lega
    Нет, во первых пайонер не в юрисдикции, поэтому на него рф законы не распротраняются, во вторых пайонер - не является банком, поэтому чисто банковские законы на него не распространяются (со всеми вытекающими).
    Ответ написан
    Комментировать
  • Когда стоит переходить на новые версии Python и когда это надо?

    @lega
    Можно ли спокойно писать на 3.5 потом перейти на 3.6 и.т.д.

    Да, ветка 3.х обратно совместимая (на 99,9%), хотя некоторые либы забивают на старые версии, что вообщем то не страшно, а иногда и оправдано.
    PS: Я уже на 3.7 с недавних пор...
    Ответ написан
    Комментировать
  • Чем отличается директива от компонента в Angular и когда что использвать?

    @lega
    Компонента имеет свой шаблон и с ним работает (как изолированное под-приложение), директива не имеет шаблона (хотя возможность есть) и ставится на чужой шаблон чтобы изменить поведение.
    Ответ написан
    1 комментарий
  • В чем практическая польза итераторов в JS?

    @lega
    > но есть же Map, Set.

    Это совсем не про это, итераторы позволяют частично выполнять ф-ии, множественный вход-выход, потоковая передача данных и т.д.

    Для сравнения попробуйте сделать функцию вычисления бесконечного фибоначи на итераторах и без, и сравните время выполнения, для получения результата (хотя бы первых N элементов).
    Ответ написан
    2 комментария
  • Как влияет индексы на обновление удаление записей?

    @lega
    1) Индексы ускоряют поиск нужных строк, что добаляет производительности (в т.ч. именения/удаления)
    2) Индексы замедляют запрос изменения/удаления, т.к. при изменении нужно обновить (пеерстроить) сами индексы
    Ответ написан
    Комментировать
  • Зачем забывать о var?

    @lega
    let - это исправленный var, а var оставили для совместимости.

    У всех их есть плюсы, и есть минусы.
    Какие плюсы у var? (За исключением того что только он есть в недобраузерах?)
    Ответ написан
    5 комментариев
  • Как из одной коллекции выбрать данные в другой?

    @lega
    Я бы сделал простой запрос по индексу (from-to) - получить все занятые на период. И уже на бекенде (из кеша или монги) выдал бы все что не попали в список (т.к. номеров не много).
    Это один из самых производительных вариантов. А сложные запросы и запросы с отрицанием (not) часто приводят к полному перебору.

    PS: но для учебного проекта не факт что подойдет.
    Ответ написан
    Комментировать
  • Сколько процентов от заказа берет человек, который нашел заказ?

    @lega
    Он с заказчиками договорился, цену и сроки назначил

    Сделать соц. сеть к вечеру, деньги 100руб по полам.?

    Не важно какой процент, просто выставите менеджеру свои сроки и сумму за которые вы согласны сделать проект.
    Ответ написан
    Комментировать
  • Что делать при таком разбросе знаний?

    @lega
    Что делать?
    Учиться искать информацию. При разработке постоянно возникают проблемы/вопросы (которых ни в книхах ни на курсах нет), поэтому нужен скилс быстро находить нужную информацию.

    пройти всё заново или практиковать?
    Минимальное понимание есть - значит практиковать, это первоначально, а теорию уже можно по пути подтягивать по мере необходимости.
    Ответ написан
    Комментировать
  • Как из базового класса вызвать метод из дочернего?

    @lega
    Оно так изначально и работает
    Python 2.7
    
    >>> class Base(object):
    ...   def from_base(self):
    ...     self.from_child()
    ...   def from_child():
    ...     raise NotImplementedError
    ... 
    >>> class Child(Base):
    ...   def from_child(self):
    ...     print('child!')
    ... 
    >>> child = Child()
    >>> child.from_base()
    child!
    Ответ написан
    Комментировать